我有一本简单的字典。我正在尝试使用旧字典中的ID和旧字典中值的长度作为新字典的值创建一个新字典。我花了一个小时在堆栈溢出尝试找到我的答案,但没有任何对我有用。我在PEP 274 python页面上尝试了一些关于这个主题的例子https://www.python.org/dev/peps/pep-0274/。
这是我正在尝试的(python 2.7):
for k, v in old_dict.iteritems():
new_dict = { k : len(v) for k in old_dict.keys() for v in old_dict.values()}
这给了我一个很好的新字典和旧字典的id,但是所有id的值字段都是相同的。例如:
old_dict = {'a':'andkfndknskfn', 'b':'nadfnn', 'c':'fn'}
上面的代码我得到了:
new_dict = {'a':13, 'b':13, 'c':13}
我想要的是:
new_dict = {'a':13, 'b':6, 'c': 2}
我求求你怜悯我:)我真的尝试了很长一段时间才找到答案,但我根本没有成功。提前感谢您帮助我找到我确定的简单答案。
答案 0 :(得分:2)
您正在混合字典理解和for
循环,它们或多或少都是相同的。就这样做:
new_dict = { k: len(v) for k, v in old_dict.iteritems()}