【问题标题】:Python: Check Number elements match exactlyPython:检查数字元素是否完全匹配
【发布时间】:2017-08-29 03:38:48
【问题描述】:

这似乎很简单,但也许我只是想得太久了...... 我有一个包含六个数字的列表:

mylist=[2,4,6,8,10,12]

我只想检查列表是否包含确切的序列 IE。 if mylist == [1,2,3,4,5,6]:

我试过了

if mylist == [1,2,3,4,5,6]:
if mylist == ['1','2','3','4','5','6']
if mylist == ["1","2","3","4","5","6"]

似乎没有一个工作。我有另一种使用 list.count() 函数的 for 循环执行此操作的方法,但我觉得如果可能的话,上述方法会更好。有人可以提供见解吗?

谢谢 ;)

【问题讨论】:

  • 您认为list == [1,2,3,4,5,6] 有什么问题?
  • 我在 if 语句中的代码在 if 语句是这样制作时没有执行,即 if list == [1,2,3,4,5,6]: print("x ")
  • "检查列表是否包含和确切的顺序"...你到底想要什么?断言 mylist 与引用完全相同,或者 mylist 中的所有元素都在引用中,或者它们在引用中的顺序相同,但引用中可能还有其他元素,或者元素的集合mylist 中的元素集是否等于引用中的元素集?
  • 是的,断言 myList 包含 [1,2,3,4,5,6]。顺序并不重要,因为无论如何都会对列表进行排序。因此,如果我将列表设置为 myList = [1,2,3,4,5,6],如果 myList 设置为此,我希望执行一些代码。
  • 仅在您没有多余元素的情况下。考虑使用集合。就这么简单:(set(mylist)==set([1,2,3,4,5,6]))

标签: python list integer comparison


【解决方案1】:

如果顺序不重要,可以使用以下代码检查mylist是否设置为这个[1,2,3,4,5,6]

mylist=[6,1,2,4,3,5]

if sorted(mylist) == sorted([1,2,3,4,5,6]):
    print("True")
else:
    print("False")

【讨论】:

    【解决方案2】:

    由于顺序不重要,您不能检查所有单个元素是否存在吗?

    >>> all([x in [1,2,3,4,5,6] for x in [1,2,3,4,5,6]])
    True
    >>> all([x in [1,2,3,4,5,6,7] for x in [1,2,3,4,5,6]])
    True
    >>> all([x in [1,2,3,4,5,6] for x in [1,2,3,4,5,6,7]])
    False
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-24
      • 1970-01-01
      • 1970-01-01
      • 2020-05-29
      • 1970-01-01
      • 2022-11-22
      • 2023-02-13
      • 2022-07-05
      相关资源
      最近更新 更多