![](/img/trans.png)
[英]How do I add all integers in one list to integers on another list with different length in the same order in Python?
[英]How do I create a list from one list of integers and one list of booleans? (Python)
例如,假设我有两个列表:
list1 = [1,2,3,4,5,6]
list2 = [False,True,False,True,False,False]
我如何创建下面的列表(仅使用 list1 中按索引位置对应于 list2 中的 false 的项目?
list3 = [1,3,5,6]
谢谢
使用.zip
list1 = [1,2,3,4,5,6]
list2 = [False,True,False,True,False,False]
list3=[j for i,j in zip(list2,list1) if i==False]
print(list3)
list1 = [1,2,3,4,5,6]
list2 = [False,True,False,True,False,False]
list3=[]
for i in range(0,len(list1)):
if list2[i] == False:
list3.append(list1[i])
只需使用布尔逻辑和列表推导式:
list1 = [1,2,3,4,5,6]
list2 = [False,True,False,True,False,False]
print([i[0] for i in zip(list1,list2) if not i[1]]) # this just includes an element if that element's corresponding value in the second list is False
这输出:
[1, 3, 5, 6]
list1 = [1,2,3,4,5,6]
list2 = [False,True,False,True,False,False]
list3=[]
for i in range(len(list1)):
if list2[i]==False:
list3.append(list1[i])
list1 = [1,2,3,4,5,6]
list2 = [False,True,False,True,False,False]
output = list (map (lambda x,y: x if y == False else '', list1,list2))
while '' in output:
output.remove('')
print(output)
输出 [1, 3, 5, 6]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.