查找和替换列表中的元素

新手上路,请多包涵

我必须搜索一个列表并将所有出现的一个元素替换为另一个元素。到目前为止,我对代码的尝试无济于事,最好的方法是什么?

例如,假设我的列表有以下整数

>>> a = [1,2,3,4,5,1,2,3,4,5,1]

我需要用值 10 替换所有出现的数字 1 所以我需要的输出是

>>> a = [10, 2, 3, 4, 5, 10, 2, 3, 4, 5, 10]

因此,我的目标是用数字 10 替换数字 1 的所有实例。

原文由 James 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 284
2 个回答

您可以使用内置的 enumerate 在迭代列表时获取索引和值。然后,使用该值来测试条件,并使用索引替换原始列表中的该值:

 >>> a = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1]
>>> for i, n in enumerate(a):
...   if n == 1:
...      a[i] = 10
...
>>> a
[10, 2, 3, 4, 5, 10, 2, 3, 4, 5, 10]

原文由 ghostdog74 发布,翻译遵循 CC BY-SA 4.0 许可协议

尝试使用 列表理解条件表达式

 >>> a=[1,2,3,1,3,2,1,1]
>>> [4 if x==1 else x for x in a]
[4, 2, 3, 4, 3, 2, 4, 4]

原文由 outis 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题