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

时间:2018-08-12 18:25:34

标签: python

在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时,我就必须执行一次“替换”和两次“插入”操作。

谢谢!

4 个答案:

答案 0 :(得分:0)

如果您想做所有事情,则可以尝试执行以下操作:

while i < len(a):
    if a[i] == 1:
        a[i : i + 1] = [10, 9, 8]
    i += 1

但是恕我直言,最好是从头开始建立一个新列表,而不是修改现有列表。

答案 1 :(得分:0)

这可能不是很有效,但单行代码却很有趣:

[item for sublist in [[x] if x != 1 else [10, 9, 8] for x in a] for item in sublist]

答案 2 :(得分:0)

创建一个新列表,替换值:

b = []
for z in a:
    b.extend([10, 9, 8] if z == 1 else [z])

答案 3 :(得分:0)

正常的列表理解就能胜任

>>> [y for x in a for y in ([10,9,8] if x==1 else [x])]
[10, 9, 8, 2, 3, 4, 5, 10, 9, 8, 2, 3, 10, 9, 8, 4, 5]