首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >空列表python 3的列表理解?

空列表python 3的列表理解?
EN

Stack Overflow用户
提问于 2019-11-19 18:34:18
回答 1查看 50关注 0票数 0

我有一个python 3代码如下:

代码语言:javascript
复制
a = []
b = [[0] * len(a[0]) for _ in range(len(a))]

上面的代码工作正常,但是下面的代码不起作用:

代码语言:javascript
复制
a = []
m, n = len(a), len(a[0])

len(a[0])在这两种代码中都有应用,为什么列表理解不能通过IndexError: list index out of range实现。

谢谢,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-19 18:41:25

在本例中,range(len(a))本质上是range(0),它是一个空范围:

代码语言:javascript
复制
>>> list(range(0))
[]

因为被迭代的集合是空的,所以理解永远不会运行,所以a[0]永远不会被计算。

它类似于此循环不输出任何内容:

代码语言:javascript
复制
for _ in []:
    print("SOME TEXT!")

[]是空的,所以for循环从不迭代。

但是,使用m, n = len(a), len(a[0])时,不管a的长度如何,都会运行a[0],因此会对a[0]进行计算,从而得到一个错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58940749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档