2014-02-24 76 views
1

我有一个程序,我应该在其中创建一个5个数字的列表,然后比较这些项目以查看它们是否完全相同。我应该比较列表的数字,然后返回布尔值,如果它是真的。 (我对编程比较陌生,只允许使用随机库和普通库)。如果任何人都能指引我正确的方向,我会很感激。比较列表中的值并创建布尔值Python

我试过的东西,如

if aList[0] = aList[1] and aList [2] and... aList[4]: 
    Return = True. 

谢谢!

回答

5

使用set()

def all_the_same(lst): 
    # all values in aList are the same. 
    return len(set(lst)) == 1 

这适用于可哈希值的任何列表;字符串,整数,布尔值,以哈希的内容的元组,花车(如果它们是完全一样的),等等。

1
return all(aList[0] == aList[i] for i in range(1, len(aList)) 
-1

这里是一个具有短路行为python3变化:

ix = iter(aList) 
iy = iter(aList) 
next(iy) 
if all(x == y for x, y in zip(ix, iy)): 
    do something 
+0

不允许使用除了随机的外部库 – dckuehn

+0

请注意,在Python 2中,'zip'是eager(返回一个列表)而不是懒惰;您可以在python标准库中获取zip的迭代器版本为'itertools.izip'。 – SingleNegationElimination