首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:用项目列表替换列表中的项目

Python:用项目列表替换列表中的项目
EN

Stack Overflow用户
提问于 2018-08-13 02:25:34
回答 4查看 68关注 0票数 1

在python程序中,我有一个我想要修改的列表:

代码语言:javascript
复制
a = [1,2,3,4,5,1,2,3,1,4,5]

假设每次我在列表中看到1,我想用10,9,8来替换它。我的目标是:

代码语言:javascript
复制
a = [10,9,8,2,3,4,5,10,9,8,2,3,10,9,8,4,5]

编程的好方法是什么?目前,每当我在列表中看到1时,我必须执行一次“替换”和两次“插入”。

谢谢!

EN

回答 4

Stack Overflow用户

发布于 2018-08-13 02:32:20

如果你想把所有的事情都做到位,那么你可以尝试这样做:

代码语言:javascript
复制
while i < len(a):
    if a[i] == 1:
        a[i : i + 1] = [10, 9, 8]
    i += 1

但是我认为从头开始建立一个新的列表要比修改现有的列表更好。

票数 0
EN

Stack Overflow用户

发布于 2018-08-13 02:32:48

这可能效率不是很高,但对一行代码来说很有趣:

代码语言:javascript
复制
[item for sublist in [[x] if x != 1 else [10, 9, 8] for x in a] for item in sublist]
票数 0
EN

Stack Overflow用户

发布于 2018-08-13 02:33:20

创建一个替换了值的新列表:

代码语言:javascript
复制
b = []
for z in a:
    b.extend([10, 9, 8] if z == 1 else [z])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51811662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档