list1 是原始串列
list2 是標準串列
list3 是結果串列
操作:如果list1中的索引(每個嵌套串列的第一個元素)出現在list2中,則洗掉該嵌套串列并繼續列舉list2中沒有的下一個元素。
示例 1:
list1 = [[1,'a'],[2,'b'],[3,'c'],[4,'d'],[5,'e'],[6,'f'],[7,'g'], [8,'h']]
list2 = [3,4,5,7]
list3 = [[1,'a'],[2,'b'],[3,'f'],[4,'h']]
示例 2:
list1 = [[0,'do'],[1,'re'],[2,'mi'],[3,'fa'],[4,'sol'],[5,'la'],[6,'si']]
list2 = [1,3,5]
list3 = [[0,'do'],[1,'mi'],[2,'sol'],[3,'si']]
uj5u.com熱心網友回復:
構建兩個不同的迭代器——一個帶有未過濾的第一個元素,一個帶有根據第一個元素過濾的第二個元素和list2. 將它們壓縮在一起以構建list3.
>>> list1 = [[1,'a'],[2,'b'],[3,'c'],[4,'d'],[5,'e'],[6,'f'],[7,'g'], [8,'h']]
>>> list2 = [3,4,5,7]
>>> [list(z) for z in zip(next(zip(*list1)), (j for i, j in list1 if i not in list2))]
[[1, 'a'], [2, 'b'], [3, 'f'], [4, 'h']]
uj5u.com熱心網友回復:
嘗試:
list1 = [
[0, "do"],
[1, "re"],
[2, "mi"],
[3, "fa"],
[4, "sol"],
[5, "la"],
[6, "si"],
]
list2 = [1, 3, 5]
out = [b for a, b in list1 if a not in list2]
out = [[a, c] for (a, _), c in zip(list1, out)]
print(out)
印刷:
[[0, 'do'], [1, 'mi'], [2, 'sol'], [3, 'si']]
uj5u.com熱心網友回復:
您可以像這樣使用串列推導:
list1 = [[1,'a'],[2,'b'],[3,'c'],[4,'d'],[5,'e'],[6,'f'],[7,'g'], [8,'h']]
list2 = [3,4,5,7]
temp = [i for i in list1 if not i[0] in list2]
list3 = [[i 1, temp[i][1]] for i in range(len(temp))]
print(list3)
輸出:
[[1, 'a'], [2, 'b'], [3, 'f'], [4, 'h']]
uj5u.com熱心網友回復:
顯然有很多方法可以實作這一點,這里有一個。
def yourFunctionName(list1,list2):
result = []
n = 1
for element in list1:
if not element[0] in list2:
result.append([n,element[1]])
return result
uj5u.com熱心網友回復:
您可以使用第一個示例中的 list1 和 list2 通過串列推導來完成此操作:
list3 = [[i list1[0][0], elem[1]] for i, elem in enumerate(e for e in list1 if e[0] not in list2)]
print(list3)
這個想法是我首先擺脫標準串列中的所有串列,然后根據 list1 中的第一個元素重新列舉它們。
輸出:
[[1, 'a'], [2, 'b'], [3, 'f'], [4, 'h']]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/430245.html
上一篇:Tkinter函式創建無法使用.get()從條目添加到串列的變數
下一篇:僅選擇物件內的特定鍵值對
