【问题标题】:Python, how to delete certain numbers in a list, and meanwhile delete the corresponding numbers in another list [duplicate]Python,如何删除列表中的某些数字,同时删除另一个列表中的相应数字[重复]
【发布时间】:2020-03-15 07:08:23
【问题描述】:

例如,这里有两个列表:a = [1, 1, 1, 9, 1, 1, 9, 9, 1, 1]b = [1, 2, 2, 5, 3, 2, 4, 2, 8, 1]。我想删除a列表中的所有9,同时我想删除b列表中所有相同位置的对应数字(即删除b中的5、4、2)。我应该如何实现这一目标?非常感谢您的帮助!

代码:

a = [1, 1, 1, 9, 1, 1, 9, 9, 1, 1]
b = [1, 2, 2, 5, 3, 2, 4, 2, 8, 1]
c = [] #create a new list
[c.append(i) for i in a if i==9]

然后呢?我应该怎么处理b?谢谢!

【问题讨论】:

  • 不要使用列表理解来产生副作用!
  • 您可以使用zip。这是您要查找的内容:new_a, new_b = map(list, zip(*((x, y) for x, y in zip(a,b) if x == 9)))
  • 非常感谢。这行得通,我想要的是 x != 9。再次感谢!

标签: python arrays


【解决方案1】:

从 a 中删除所有等于 9 的元素:

>>> [x for x in a if x != 9]
[1, 1, 1, 1, 1, 1, 1]

从 b 中删除所有具有正确索引的元素:

>>> [b[i] for i, x in enumerate(a) if x!=9]
[1, 2, 2, 3, 2, 8, 1]

【讨论】:

    猜你喜欢
    • 2021-01-06
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-03
    相关资源
    最近更新 更多