此python代码怎么了? (初学者的问题)

问题描述 投票:0回答:1

此代码有什么问题?我一定缺少一些琐碎的东西。每次我尝试运行它时,它都会暂时不执行任何操作,然后输出“ 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
1个回答
1
投票

您在遍历列表时将其追加到列表中,因此,每次执行“前进”操作时,都会添加另一个“步骤”以待以后执行,因此最终以['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)

0
投票

列表= ['a','b','c','d']list2 = []对于列表中的元素:list2.append(element +“ x”)list.extend(list2)

打印(列表)

由于您要在循环中追加内容,因此经常会遇到内存错误。上面的代码可能会对您有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.