微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

撤消python列表理解

如何解决撤消python列表理解

这段python代码是列表理解的一个例子

lst = [ x**2 for x in [x**2 for x in range(11)]]

# [0,1,16,81,256,625,1296,2401,4096,6561,10000]

如果不在列表理解范围内,该怎么写?

我的理解是,生成的列表是range(11)中每个数字的平方的平方。所以我知道这是获得第一部分的方法

lst = []
for item in range(11):
    lst.append(item**2)
print(lst)

# [0,4,9,25,36,49,64,100]

但是我如何获得第二部分?

解决方法

执行两次循环

lst = []
for item in range(11):
    lst.append(item**2)
i = 0
for item in lst:
    lst[i] = (item**2)
    i = i + 1
print(lst)
,

理解力等同于

lst = []
for item in range(11):
    lst.append((item**2)**2)

之后您就可以

print(lst)

观察

[0,1,16,81,256,625,1296,2401,4096,6561,10000]
,

与以下相同:

lst = []
num_lst = []
for x in range(11):
    num_lst.append(x**2)
for x in num_lst:
    lst.append(x**2)
print(lst)

输出:

[0,10000]
,
lst = [ x**2 for x in [x**2 for x in range(11)]]

# equivalent to:
squares = []
squares2 = []
for x in range(11):
    squares.append(x**2)

for item in squares:
    squares2.append(item**2)
    
print(squares2)
print(squares2==lst)

输出:

[0,10000]
True

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。