DeA*_*nez 1 python string dictionary for-loop python-3.x
我有以下字典:
dict = {12:'Apples', 13:'Bananas', 14:'Oranges', 15:'Cherries'}
Run Code Online (Sandbox Code Playgroud)
我想重写这本字典,以便 的值dict成为new_dict. 那么 的值new_dict将是每个新值的长度,如下所示:
new_dict = {'Apples':6, 'Bananas':7, 'Oranges':7, 'Cherries':8}
Run Code Online (Sandbox Code Playgroud)
我可以使用交换值
new_dict{}
for key,value in dict.items():
new_dict[key] = [value]
print(new_dict[key])
counts = len(new_dict[key])
Run Code Online (Sandbox Code Playgroud)
但是这里的 len 函数计算存在多少个值,而不是每个值有多少个字符。
您可以使用字典理解执行以下操作:
d = {12:'Apples', 13:'Bananas', 14:'Oranges', 15:'Cherries'}
d_new = {v: len(v) for v in d.values()}
Run Code Online (Sandbox Code Playgroud)
输出:
>>> d_new
{'Apples': 6, 'Bananas': 7, 'Oranges': 7, 'Cherries': 8}
Run Code Online (Sandbox Code Playgroud)
请注意dict,在覆盖内置dict类时,不应将其用作变量名。
这等效于以下 for 循环:
new_dict = {}
for v in d.values():
new_dict[v] = len(v)
Run Code Online (Sandbox Code Playgroud)