我试图根据列表中的所有元素是否相同来产生分数。
totals = [1, 1, 1, 1, 1]
因此,如果所有元素都相同(如上例所示),则得分为40.
我尝试过:
count.same(totals)
答案 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