【发布时间】: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。再次感谢!