【发布时间】:2014-08-26 12:59:35
【问题描述】:
我有一本这样的字典:
dct = {'one': 'value',
'two': ['value1','value2','value1'],
'three':['otherValue1','otherValue2','otherValue1'],
'dontCareAboutThisKey':'debug'}
我需要从列表中删除重复值。我写了一个函数来做到这一点:
no_dups = {}
for keys in dct:
if isinstance(dct[keys], list) and keys != 'dontCareAboutThisKey':
for value in dct[keys]:
if value not in no_dups.values():
no_dups[keys].append(value)
else:
no_dups[keys] = dct[keys]
我正在检查当前键的值是否是一个列表。如果不是,它只是将键“复制”到no_dups 字典。如果它是一个列表而不是我不关心的键(肯定没有重复项) - 它应该检查no_dups.values() 中是否已经存在当前值并将其附加到当前键。问题是我收到了一个错误:
KeyError: 'two:'
我知道这是因为我试图为不存在的键添加一个值,但我不知道如何处理它并使其工作。
【问题讨论】:
-
在哪一行抛出错误?
-
no_dups[keys].append(value)
标签: python python-3.x dictionary append