2024-04-27 13:26:28 发布
网友
我一直在得到的记忆错误,但无法理解背后的原因。下面是代码。使用列表并在列表中再添加两个元素。你知道吗
mylist = ['phonon', 'communication'] for i in mylist: mylist.append(i.upper()) print(mylist)
如果有人能帮我的话,那真的很有帮助。你知道吗
我会将您编辑的元素添加到新列表中:
uppers = [] for i in mylist: uppers.append(i.upper()) print(uppers)
根据琼的回答:
mylist.extend(i.upper() for i in mylist)
应该会给你想要的结果。你知道吗
for i in mylist: mylist.append(i.upper())
基本上是在迭代时附加到列表中。所以迭代永远不会结束。你知道吗
你想做:
mylist += [i.upper() for i in mylist]
在最后一种情况下,从未修改的mylist计算右侧表达式,然后将其元素附加到现有的mylist。你知道吗
mylist
请注意,以上等同于
mylist.extend([i.upper() for i in mylist])
或者
mylist.extend(list(map(str.upper,mylist)))
请注意,对于上面的两个代码段,有必要将其转换为list,否则,如果延迟计算内部代码,则会得到相同的内存错误。最后一个代码段可能是最快的,因为它根本不使用任何python循环,map,也不使用lambda
list
map
lambda
对于所有3个代码段,结果是:
['phonon', 'communication', 'PHONON', 'COMMUNICATION']
我会将您编辑的元素添加到新列表中:
根据琼的回答:
应该会给你想要的结果。你知道吗
基本上是在迭代时附加到列表中。所以迭代永远不会结束。你知道吗
你想做:
在最后一种情况下,从未修改的
mylist
计算右侧表达式,然后将其元素附加到现有的mylist
。你知道吗请注意,以上等同于
或者
请注意,对于上面的两个代码段,有必要将其转换为
list
,否则,如果延迟计算内部代码,则会得到相同的内存错误。最后一个代码段可能是最快的,因为它根本不使用任何python循环,map
,也不使用lambda
对于所有3个代码段,结果是:
相关问题 更多 >
编程相关推荐