Python 检查列表中的值是否相等,并将其设置为0
我希望列表a中的元素在列表b中为零Python 检查列表中的值是否相等,并将其设置为0,python,python-3.x,arraylist,list-comprehension,Python,Python 3.x,Arraylist,List Comprehension,我希望列表a中的元素在列表b中为零 a = [80,85,140,145] b = list(range(200)) 是否有一种方法可以代替手动编写: b[80]=0 b[140]=0 因为我正在运行模拟,列表a中的值以及a的列表长度总是在从一个模拟更改为另一个模拟,我想找到一种方法,自动将列表b中列表a的值设置为0,为什么不在创建时使用列表理解进行过滤: a = [80,85,140,145] b = list(range(200)) b = [x if x not in a el
a = [80,85,140,145]
b = list(range(200))
是否有一种方法可以代替手动编写:
b[80]=0
b[140]=0
因为我正在运行模拟,列表a中的值以及a的列表长度总是在从一个模拟更改为另一个模拟,我想找到一种方法,自动将列表b中列表a的值设置为0,为什么不在创建时使用列表理解进行过滤:
a = [80,85,140,145]
b = list(range(200))
b = [x if x not in a else 0 for x in range(200)]
如果x不在a
中,则检查数字是否假定未被过滤,如果要过滤,则否则0
将其设置为零 为什么不做一个简单的循环呢?简单的解决方案是只需执行以下操作:
a = [8,5,1, 14]
b = list(range(20))
i = 0
while (i < len(a)):
b[a[i]] = 0
i = i+1
print(b)
a=[8,5,1,14]
b=列表(范围(20))
i=0
而(i
如果我正确理解了问题,这将在a
中包含的索引处将b
中的项目替换为零:
for i in a:
b[i] = 0
您可以使用列表来理解这一点
c = [0 for x in b if x in a]
您可以尝试以下方法:
for i in b:
if i in a:
b[i]=0
希望这有帮助:D简单的列表理解有助于:
a = [2, 4]
b = list(range(10))
[x if x not in a else 0 for x in b]
## [0, 1, 0, 3, 0, 5, 6, 7, 8, 9]