如何解决撤消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 举报,一经查实,本站将立刻删除。