对于空列表python 3的列表理解?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对于空列表python 3的列表理解?相关的知识,希望对你有一定的参考价值。
我有如下的python 3代码:
a = []
b = [[0] * len(a[0]) for _ in range(len(a))]
上面的代码工作正常,但是下面的代码不起作用:
a = []
m, n = len(a), len(a[0])
len(a[0])
在两个代码中均适用,为什么列表理解不通过IndexError: list index out of range
。
谢谢,
答案
在这种情况下,[range(len(a))
本质上是range(0)
,这是一个空范围:
>>> list(range(0))
[]
因为要迭代的集合为空,所以理解永远不会运行,因此永远不会评估a[0]
。
类似于此循环如何不打印任何内容:
for _ in []:
print("SOME TEXT!")
[[]
为空,因此for
循环永远不会迭代。
然而,对于m, n = len(a), len(a[0])
,无论a[0]
的长度如何,都将运行a
,因此对a[0]
进行求值,会出现错误。
以上是关于对于空列表python 3的列表理解?的主要内容,如果未能解决你的问题,请参考以下文章