我知道索引会超过该组最后一个成员的索引,但如何使该功能正常工作?
无论如何,该函数的目的是检查列表中的所有成员是否相同。我对另一个函数有同样的问题,该函数旨在检查列表是否按顺序排列。它适用于其他所有内容,但当数字全部相同时,它就不起作用了。
i = 0
while i < len(list1):
if list1[i] == list1[i + 1]:
i += 1
else:
return False
return True
错误消息是:“IndexError:列表索引超出范围”
最佳答案
当i
达到list1
内的最大索引时,显然list1[i+1]
将出界。立即修复是从 1 开始(当然然后向下比较)或在 len(list1)-1 处停止。
但是您可以通过将所有索引与零进行比较来简化。
all([list1[0] == x for x in list1[1:]])
或作为普通循环
for elem in list1[1:]:
if elem != list1[0]:
return False
return True
关于python - 检查所有列表元素是否相同的代码返回 IndexError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58137393/