迭代和修改字典

迭代和修改字典

问题描述:

我有代码,它有一些词的字典。该计划打算合并单词。迭代和修改字典

也就是说,如果word iword jdictionary[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] 

这段代码合法吗?

+1

你有没有试过**测试它**? – jonrsharpe 2014-11-04 10:38:26

+0

@jonrsharpe:是的,我做了一些异常,但异常描述是字典中的单词。我不知道它是否因为这个代码或不是 – ranger 2014-11-04 10:41:57

+1

那么为什么你不提供错误追溯**?如果你得到错误,答案显然是*“不,这个代码是无效的。”*请编辑问题以包含一个[最小示例](http://stackoverflow.com/help/mcve)代码和实际上重现问题的数据。 – jonrsharpe 2014-11-04 10:43:06

您的代码无效。在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循环仍然看起来很丑。但首先让它工作,以后你可以提高代码的质量。我希望我的榜样能够帮助你。