Zac*_*tes 6 python list python-2.7
如果我有这个清单;
mylist = ['n', 'n', '4', '3', 'w']
Run Code Online (Sandbox Code Playgroud)
如何让它阅读列表,并告诉我它们是否都是一样的?
我知道在这个例子中很容易说出它们并不完全相同.我有更大的列表,我希望它能为我阅读.
我会用这个来解决这个问题:
min(...)
Run Code Online (Sandbox Code Playgroud)
如果是这样,我将如何输入每个列表项?
the*_*eye 16
你可以像这样使用set
len(set(mylist)) == 1
Run Code Online (Sandbox Code Playgroud)
说明
集合中只存储唯一的项目.因此,我们尝试将列表转换为集合.转换后,如果集合中包含多个元素,则表示并非列表中的所有元素都相同.
注意:如果列表具有不可用项(如列表,自定义类等),set则无法使用该方法.但我们可以使用@falsetru建议的第一种方法,
all(x == mylist[0] for x in mylist)
Run Code Online (Sandbox Code Playgroud)
好处:
它甚至适用于不可用的类型
它不会在内存中创建另一个临时对象.
它在第一次故障后短路.如果第一个和第二个元素不匹配,则False立即返回,而在该set方法中,必须比较所有元素.所以,如果列表很大,你应该更喜欢这种all方法.
即使列表实际为空,它也能工作.如果iterable中没有元素,all则返回True.但是空列表将创建一个空set,其长度为0.
fal*_*tru 12
all(x == mylist[0] for x in mylist)
Run Code Online (Sandbox Code Playgroud)
替代方案:
mylist.count(mylist[0]) == len(mylist)
Run Code Online (Sandbox Code Playgroud)
注意一旦发现列表中有任何不同的项目,第一个将停止,而替代品则不会.