我有一个字典
dict2
,我想要遍历它并删除所有包含idlist
中特定ID编号的条目。 dict2[x]
是一个列表的列表(请参见下面的示例dict2)。这是我到目前为止编写的代码,但它不能删除在idlist
中存在的所有ID(entry [1]
)的所有实例。 有什么帮助吗?dict2 = {G1:[[A, '123456', C, D], [A, '654321', C, D], [A, '456123', C, D], [A, '321654', C, D]]}
idlist = ['123456','456123','321654']
for x in dict2.keys():
for entry in dict2[x]:
if entry[1] in idlist:
dict2[x].remove(entry)
if dict2[x] == []:
del dict2[x]
dict2
应该最终呈现出以下形式:
dict2 = {G1:[[A, '654321', C, D]]}
dict2.keys()
。 - Ben Hoytdel
,但后来加上了del
却没有换回来。 :) - Amberdict2[x] = [x for x in dict2[k] if x[1] not in idlist] TypeError: list objects are unhashable
。我不知道这是否有所不同,但是真正的dict2也包含datetime对象和其他列表。 - marsxdict2
比你在这里写的多了一层嵌套,或者列表中使用了错误的索引。 - Amberdict2[k] = [x for x in dict2[k] if x[1] not in idlist]
?如果你将列表称为x
,那么dict2[x]
就没有意义了。 - marsx