加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

用python中的列表替换元素

发布时间:2020-12-20 12:29:43 所属栏目:Python 来源:网络整理
导读:在 python中,用另一个列表中的元素替换列表中的元素的最佳方法是什么? 例如,我有: a = [ 1,'replace_this',4 ] 我想用[2,3]替换replace_this.更换后必须是: a = [ 1,2,3,4 ] 更新 当然,切片可以做(对不起,我没有在问题中写出来),但问题是你可能在列表中有
在 python中,用另一个列表中的元素替换列表中的元素的最佳方法是什么?

例如,我有:

a = [ 1,'replace_this',4 ]

我想用[2,3]替换replace_this.更换后必须是:

a = [ 1,2,3,4 ]

更新

当然,切片可以做(对不起,我没有在问题中写出来),但问题是你可能在列表中有多个replace_this值.在这种情况下,您需要在循环中进行替换,这将变得不理想.

我认为使用itertools.chain会更好,但我不确定.

解决方法

你可以使用切片:

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

正如@mgilson指出的那样 – 如果你碰巧不知道要替换的元素的位置,那么你可以使用a.index来找到它……(见他的评论)

更新与不使用切片有关

使用itertools.chain,确保替换具有可迭代:

from itertools import chain

replacements = {
    'replace_this': [2,3],4: [7,8,9]
}

a = [ 1,4 ]
print list(chain.from_iterable(replacements.get(el,[el]) for el in a))
# [1,7,9]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读