gpt4 book ai didi

python - 列表理解中的条件没有索引错误

转载 作者:行者123 更新时间:2023-11-28 21:13:29 24 4
gpt4 key购买 nike

当我运行代码时:

mylist = []
mylist[1]

我收到 IndexError:列表索引超出范围。这对我来说很有意义。但是当我运行以下代码时:

mylist = []
newlist = [x for x in mylist if mylist[1] == 'mystring']
print(newlist)

我没有收到索引错误,它只是打印了一个空列表。这就是我希望代码执行的操作,但我不明白为什么它不给我和 IndexError。据我所知,这仅在列表为空时发生,否则如果您对列表进行索引超出范围,则可能会出现索引错误。例如:

mylist = ['string']
newlist = [x for x in mylist if mylist[1] == 'mystring']

返回我期望它返回的 IndexError。

如果有人可以帮助解释为什么如果你有一个条件语句在列表理解中指定一个空列表的索引,你不会得到索引错误,那就太棒了。

最佳答案

这与条件和理解无关。这只是一个事实,即迭代一个空序列或集合不会产生迭代。请注意以下代码块如何在 for 循环中不产生错误,即使未定义 x:

>>> a = 0
>>> for i in []:
... x = x + 2
...
>>> a
0
>>> x
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'x' is not defined

关于python - 列表理解中的条件没有索引错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32755641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com