分享

Python 列表元素替换 | LFhacks.com

 乙甲壬 2020-07-06

在 Python 中,如何替换列表中的元素?其实 Python 并无自带 Replace 方法,只能自己编写循环或者使用列表解析的方法。

目录

无内置replace

Python里字符串有replace方法,但是List没有replace的方法:

>>> lst = ['1','2','3']>>> lst.replace('1', '4')Traceback (most recent call last): File '<stdin>', line 1, in <module>AttributeError: 'list' object has no attribute 'replace'

条件替换

点击下图中“点击播放”,观看把 ‘2’ 替换成 ‘4’ 的替换过程:

点击播放

可以用列表解析的方法实现元素替换,

>>> lst = ['1', '2', '3']>>> rep = ['4' if x == '2' else x for x in lst]>>> rep['1', '4', '3']>>> 

批量替换

点击下图中“点击播放”,观看把 ’3’和‘4’ 替换成 ‘d’ 的替换过程:

点击播放

批量替换,即把一个列表里的元素全部替换成同一个元素,下例里把 ‘3’ 和 ‘4’ 都替换成’d’:

>>> lst = ['1', '2', '3', '4', '5']>>> pattern = ['3', '4']>>> rep = ['d' if x in pattern else x for x in lst]>>> rep['1', '2', 'd', 'd', '5']>>>

映射替换

点击下图中“点击播放”,观看把 ’3’和‘4’ 替换成英文的过程:

点击播放

根据一个字典的映射关系替换,下例里把 ‘3’ 和 ‘4’ 都替换成英文:

>>> lst = ['1', '2', '3', '4', '5']>>> pattern = {'3':'three', '4':'four'}>>> rep = [pattern[x] if x in pattern else x for x in lst]>>> rep['1', '2', 'three', 'four', '5']>>> 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多