在python程序中,我有一个我想要修改的列表:
a = [1,2,3,4,5,1,2,3,1,4,5]假设每次我在列表中看到1,我想用10,9,8来替换它。我的目标是:
a = [10,9,8,2,3,4,5,10,9,8,2,3,10,9,8,4,5]编程的好方法是什么?目前,每当我在列表中看到1时,我必须执行一次“替换”和两次“插入”。
谢谢!
发布于 2018-08-13 02:32:20
如果你想把所有的事情都做到位,那么你可以尝试这样做:
while i < len(a):
if a[i] == 1:
a[i : i + 1] = [10, 9, 8]
i += 1但是我认为从头开始建立一个新的列表要比修改现有的列表更好。
发布于 2018-08-13 02:32:48
这可能效率不是很高,但对一行代码来说很有趣:
[item for sublist in [[x] if x != 1 else [10, 9, 8] for x in a] for item in sublist]发布于 2018-08-13 02:33:20
创建一个替换了值的新列表:
b = []
for z in a:
b.extend([10, 9, 8] if z == 1 else [z])https://stackoverflow.com/questions/51811662
复制相似问题