如何删除列表字典的值

时间:2019-04-13 15:02:04

标签: python arrays dictionary indexing

如何删除每个词典项目的特定元素?

给出以下示例,我要删除key1key2key3中的 2nd 元素。

data{'key1':[value1 ,"abc" ,value3, value4]
     'key2':[value1 ,"def" ,value3, value4]
     'key3':[value1 ,1 ,value3, value4]}

因此它应该变成:

Input: 2
Output: 
data{'key1':[value1,value3,value4]
     'key2':[value1,value3,value4]
     'key3':[value1,value3,value4]}

2 个答案:

答案 0 :(得分:1)

从您的示例中,我猜您的意思是相似的值而不是相似的索引。

如果是这种情况,请查看此答案: Removing Duplicates From Dictionary

请注意,Python的字典“ values()”方法以O(n)运行,因此投票最多的解决方案将具有O(n ^ 2)复杂度,其中n是原始字典中的项数。

如果这足以满足您的要求,您的代码将类似于

data = {'key1':[1,2,3,4],
     'key2':[1,2,3,4],
     'key3':[1,2,3,4]}

result = {}

for key,value in data.items():
    if value not in result.values():
        result[key] = value

最后,“结果”将具有不重复的字典。

答案 1 :(得分:0)

for value in data.values():
    del value[index]