迭代和修改字典
问题描述:
我有代码,它有一些词的字典。该计划打算合并单词。迭代和修改字典
也就是说,如果word i
为word j
则dictionary[word i]
值合并dictionary[word j]
和删除dictionary[word i]
for i in my_dict.keys():
for j in my_dict.keys():
if i!=j:
if i in j:
my_dict[j]+=my_dict[i]
del my_dict[i]
elif j in i:
my_dict[i]+=my_dict[j]
del my_dict[j]
这段代码合法吗?
答
您的代码无效。在python中没有用于从字典中删除元素的命令delete
。它被称为del
。你可以删除这样的字典项目:
del your_dictionary['some_key']
然而,这不是pythonic。你可以重构你的代码是这样的:
for i in my_dict.keys():
for j in my_dict.keys():
if i != j:
if i in j:
my_dict[j] += my_dict.pop(i)
elif j in i:
my_dict[i] += my_dict.pop(j)
pop
是一本字典方法,它返回并从字典中删除的项目。
上面的代码只是关于字典中的值的合并(连接)的建议。双for
循环仍然看起来很丑。但首先让它工作,以后你可以提高代码的质量。我希望我的榜样能够帮助你。
你有没有试过**测试它**? – jonrsharpe 2014-11-04 10:38:26
@jonrsharpe:是的,我做了一些异常,但异常描述是字典中的单词。我不知道它是否因为这个代码或不是 – ranger 2014-11-04 10:41:57
那么为什么你不提供错误追溯**?如果你得到错误,答案显然是*“不,这个代码是无效的。”*请编辑问题以包含一个[最小示例](http://stackoverflow.com/help/mcve)代码和实际上重现问题的数据。 – jonrsharpe 2014-11-04 10:43:06