【问题标题】:How can I replace elemts of a list with other elements如何用其他元素替换列表中的元素
【发布时间】:2020-03-29 01:41:21
【问题描述】:

我有两个列表:

a = [1, 1, 0, 1, 0, 0, 1]
b = [120, 131, 152, 143]

我想用列表“b”的元素替换列表“a”中的“1”,顺序很重要。我想要这样的东西

c = [120, 131, 0, 152, 0, 0, 143]

【问题讨论】:

  • 嗨@Christian,请展示一下你到目前为止的尝试?

标签: python list replace


【解决方案1】:

这是使用iter()b 转换为可迭代对象的一种方法。

例如:

a = [1, 1, 0, 1, 0, 0, 1] 
b = iter([120, 131, 152, 143])

print([next(b) if val == 1 else val for val in a])

输出:

[120, 131, 0, 152, 0, 0, 143]

【讨论】:

    【解决方案2】:

    一种更“传统”的方法,带有一个简单的循环:

    a = [1, 1, 0, 1, 0, 0, 1]
    b = [120, 131, 152, 143]
    ans = []
    i, j = 0, 0
    
    while i < len(a):
        if a[i] == 1:
            ans.append(b[j])
            j += 1
        else:
            ans.append(0)
        i += 1
    
    ans
    => [120, 131, 0, 152, 0, 0, 143]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-12
      • 1970-01-01
      • 2018-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-13
      • 1970-01-01
      相关资源
      最近更新 更多