访问我有两个列表这样名单在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'中移除?由于这些元素完全不同,这似乎与您的描述不符。 –