首页 > 解决方案 > 这个 python 代码有什么问题?(初学者的问题)

问题描述

这段代码有什么问题?我一定错过了一些微不足道的东西。每次我尝试运行它时,它都会有一段时间什么都不做,然后输出“Killed”。我希望它获取列表中的每个元素,为其添加“x”,然后将这个新元素附加到列表中,这样输出将如下所示:

['a', 'b', 'c', 'd', 'ax', 'bx', 'cx', 'dx']

到目前为止我的代码:

list = ['a', 'b', 'c', 'd']

for element in list:
    element = element + "x"
    list.append(element)

print(list)

标签: python

解决方案


当您遍历它时,您将附加到您的列表中,因此每次您向前迈出“一步”时,您都会添加另一个“步骤”以便稍后采取,因此您最终会得到['a', 'b', 'c', 'd', 'ax', 'bx', 'cx', 'dx', 'axx', 'bxx' ...]. 出于与此类似的许多原因,一般规则是您应该避免在迭代列表时修改列表。

试试这个

list_1 = ['a', 'b', 'c', 'd']

list_2 = [elem + 'x' for elem in list_1]

result = list_1 + list_2

print(result)

推荐阅读