python - 这个 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)
解决方案
当您遍历它时,您将附加到您的列表中,因此每次您向前迈出“一步”时,您都会添加另一个“步骤”以便稍后采取,因此您最终会得到['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)
推荐阅读
- javascript - JavaScript 中的嵌套获取
- excel - 使用 find 搜索整个工作表返回空值
- reactjs - 遗留应用程序中的 React 项目(组件)(在 JSP 和 Java 中)
- php - phpstan:如何处理派生类返回类型
- python - Dask 延迟错误 - AttributeError:“_thread._local”对象没有属性“值”
- git - 在 PR 上压缩一些提交然后重新定位到 master 是否有问题
- c# - Nuget 包是否可以覆盖框架版本?
- sql - 每个用户最多两个条目的 SQL 唯一约束
- python - Python通过赋值传递但不保留值
- javascript - JavaScript - 过滤字符串数组