用map函数映射后的列表无法每个print
本帖最后由 irx999 于 2021-6-24 21:20 编辑temp2 = map(lambda c : c * 3 ,range(20))
print(list(temp2))
print(type(list(temp2)))
SS = list(temp2)
for s in SS:
print(s)
print(type(SS))
问题如图所示 我看 都是列表 但是就是无法单个写出 大列表套小列表 本帖最后由 hrpzcf 于 2021-6-24 21:45 编辑
那是因为在python3中,map函数返回的是一个迭代器,迭代器有个特点就是只能被迭代一次。
所以你第二行print(list(temp2))时迭代器temp2已经被迭代完了,换句话说就是被消耗干净了。
所以后面你list(temp2)多少次得到的一律都是空列表,包括SS(你可以在第4行后面加一行print(SS)看看是不是),所以print(s)根本没有被执行。
解决办法也很简单,注释掉可能消耗temp2的代码就可以。
temp2 = map(lambda c : c * 3 ,range(20))
#print(list(temp2))
#print(type(list(temp2)))
SS = list(temp2)
for s in SS:
print(s)
print(type(SS)) hrpzcf 发表于 2021-6-24 21:42
那是因为在python3中,map函数返回的是一个迭代器,迭代器有个特点就是只能被迭代一次。
所以你第二行prin ...
非常感谢您
页:
[1]