用四个元素在Python中得到Memory错误

2024-04-27 13:26:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在得到的记忆错误,但无法理解背后的原因。下面是代码。使用列表并在列表中再添加两个元素。你知道吗

mylist = ['phonon', 'communication']
for i in mylist:
    mylist.append(i.upper())
print(mylist)

如果有人能帮我的话,那真的很有帮助。你知道吗


Tags: 记忆代码in元素列表for错误原因
3条回答

我会将您编辑的元素添加到新列表中:

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.extend([i.upper() for i in mylist])

或者

mylist.extend(list(map(str.upper,mylist)))

请注意,对于上面的两个代码段,有必要将其转换为list,否则,如果延迟计算内部代码,则会得到相同的内存错误。最后一个代码段可能是最快的,因为它根本不使用任何python循环,map,也不使用lambda

对于所有3个代码段,结果是:

['phonon', 'communication', 'PHONON', 'COMMUNICATION']

相关问题 更多 >