Python:字典理解:使用旧字典 ID 的新值制作新字典
Python: dict comprehensions: making a new dictionary with new values from old dictionary ids
我有一本简单的字典。我正在尝试创建一个新字典,其中包含旧字典中的 ID 和旧字典中值的长度作为新字典的值。我花了一个小时在堆栈溢出上试图找到我的答案,但对我没有任何帮助。我也在此处 https://www.python.org/dev/peps/pep-0274/ 尝试了 PEP 274 python 页面上关于该主题的一些示例。
这是我正在尝试的 (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}
求求你可怜可怜我:) 我确实尝试了很长一段时间自己找到答案,但我就是没有成功。预先感谢您帮助我找到一个简单的答案。
您正在混合使用字典理解和 for
循环,它们或多或少地做同样的事情。只需这样做:
new_dict = { k: len(v) for k, v in old_dict.iteritems()}
我有一本简单的字典。我正在尝试创建一个新字典,其中包含旧字典中的 ID 和旧字典中值的长度作为新字典的值。我花了一个小时在堆栈溢出上试图找到我的答案,但对我没有任何帮助。我也在此处 https://www.python.org/dev/peps/pep-0274/ 尝试了 PEP 274 python 页面上关于该主题的一些示例。
这是我正在尝试的 (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}
求求你可怜可怜我:) 我确实尝试了很长一段时间自己找到答案,但我就是没有成功。预先感谢您帮助我找到一个简单的答案。
您正在混合使用字典理解和 for
循环,它们或多或少地做同样的事情。只需这样做:
new_dict = { k: len(v) for k, v in old_dict.iteritems()}