訪問我有兩個列表這樣名單在Python
Nodelist1=[[['B', 10], ['IN', 1000]], [['C', 15], ['OUT', 1001]], [['F', 30], ['IN', 1100]]]
Nodelist2= [[['G', 20], ['IN', 1000, 'OUT', 1111]], [['D', 25], ['INWARD', 1]]]
我所試圖做的。如果條件爲真,那麼我想是我比較這兩個列表這樣
if len(Nodelist1[i][1])==len(Nodelist2[j][1])
刪除Nodelist1[i][0]
即['B', 10]
和Nodelist1
和Nodelist2[j][1]
即['D', 25]
從Nodelist2
。
那麼我應該有
Nodelist1 as [[['C', 15], ['OUT', 1001]], [['F', 30], ['IN', 1100]]]
Nodelist2 as [[['G', 20], ['IN', 1000, 'OUT', 1111]]]
我的代碼是這樣的:
if len(Nodelist1)>len(Nodelist2):
for i in range(len(Nodelist1)):
for j in range(len(Nodelist2)):
if len(Nodelist1[i][1])==len(Nodelist2[j][1]):
if Nodelist1[i][1]==Nodelist2[j][1]:
Nodelist1.remove(Nodelist1[i])
Nodelist2.remove(Nodelist2[j])
else:
Nodelist1.remove(Nodelist1[i])
Nodelist2.remove(Nodelist2[j])
它給了我一個錯誤:從列表
if len(Nodelist1[i][1])==len(Nodelist2[j][1]):
IndexError: list index out of range
你真的需要使用'range'嗎? –
還有什麼可以用來迭代和實現結果? – user2592166
我沒有真正看到這裏的邏輯,爲什麼'[['B',10],['IN',1000]]'從'Nodelist1'中被移除,爲什麼'[['D',25] ,['INWARD',1]]'從'Nodelist2'中移除?由於這些元素完全不同,這似乎與您的描述不符。 –