python - 检查所有列表元素是否相同的代码返回 IndexError?

标签 python python-3.x

我知道索引会超过该组最后一个成员的索引,但如何使该功能正常工作?

无论如何,该函数的目的是检查列表中的所有成员是否相同。我对另一个函数有同样的问题,该函数旨在检查列表是否按顺序排列。它适用于其他所有内容,但当数字全部相同时,它就不起作用了。

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/

相关文章:

python - 模块对象没有属性 'Screen'

python - 为特定键订购字典

python - 在 zip 对象列表上执行 len 会清除 zip

python - 在 centos 6.5 上安装 tensorflow

python - 使用Python的pillow/PIL库:

python - 如何更改 python 版本以与 pyinstaller 一起使用

python - 如何在模块中定义与 __all__ 分开的 `from ... import *' api?

python-3.x - 如何使用 SpaCy 中的管道组件修改 spacy.tokens.doc.Doc token

python - 将数组的 Python 字典转换为数据框

Python 日志记录 : Group logs which belong to one request