簡體   English   中英

如何從一個整數列表和一個布爾值列表創建一個列表? (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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM