如何检查列表中的所有元素是否相同

时间:2014-11-28 14:11:09

标签: python list

我试图根据列表中的所有元素是否相同来产生分数。

totals = [1, 1, 1, 1, 1]

因此,如果所有元素都相同(如上例所示),则得分为40.

我尝试过:

count.same(totals)

5 个答案:

答案 0 :(得分:3)

创建set并检查长度。集合是无序集合,没有重复元素。

if len(set(totals)) == 1:
    score = 40

示范

>>> totals = [1, 1, 1, 1, 1]
>>> print(set(totals))
{1}
>>> totals = [1, 1, 1, 2, 1]
>>> print(set(totals))
{1, 2}

答案 1 :(得分:1)

不确定你的评分是什么意思,因为你没有讨论你是如何得分40的。但是,检查列表中所有元素是否相同的一种方法是:

totals.count(totals[0]) == len(totals)

如果它们全部相同,则只返回True,否则返回False

答案 2 :(得分:1)

为什么不创建简单的功能?

def all_equal(totals):
    if len(totals) > 1:
        start = totals[0] # compare with the first element
        for i in range(1, len(totals)):
            if totals[i] != start:
                 return False
    return True
#
totals = [12, 14, 28]
totals_2 = [12, 12, 12]

print(all_equal(totals))

答案 3 :(得分:1)

all(x == totals[0] for x in totals[1:])

答案 4 :(得分:0)

我知道这不是一个好主意,但它也是一个解决方案。

In [272]: len(totals)*[0] == [totals.index(i) for i in totals]
Out[272]: True