如果我有这个清单;
mylist = ['n', 'n', '4', '3', 'w']
我如何让它读取列表,并告诉我它们是否都相同?
我知道在这个例子中很容易看出它们并不完全相同。我有更大的清单,我希望它为我阅读。
我会使用以下方法来解决这个问题:
min(...)
如果是这样,我将如何输入每个列表项?
你可以像这样使用集合
len(set(mylist)) == 1
解释
集合中仅存储独特的项目。因此,我们尝试将列表转换为集合。转换后,如果集合中有多个元素,则意味着列表中并非所有元素都相同。
Note:如果列表中有不可散列的项目(如列表、自定义类等),则set
方法无法使用。但我们可以使用@falsetru建议的第一种方法,
all(x == mylist[0] for x in mylist)
优点:
它甚至适用于不可散列的类型
它不会在内存中创建另一个临时对象。
第一次故障后它会短路。如果第一个和第二个元素不匹配,则返回False
立即,而在set
方法中的所有元素都必须进行比较。因此,如果列表很大,您应该更喜欢all
方法。
即使列表实际上是空的,它也能工作。如果可迭代中没有元素,all
将返回True
。但是空列表会创建一个空的set
其长度将为 0。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)