假设我有以下 Python 字典:
letters= {0: 'a',
1: 'b',
2: 'c',
3: 'd',
4: 'e',
5: 'f',
6: 'g',
7: 'h',
8: 'i',
9: 'j',
10: 'k',
11: 'l',
12: 'm',
13: 'n',
14: 'o',
15: 'p',
16: 'q',
17: 'r',
18: 's',
19: 't',
20: 'u',
21: 'v',
22: 'w',
23: 'x',
24: 'y',
25: 'z',
26: ' '}
我用下面的dict理解改变了键和值的顺序:
encoding = {y:x for x,y in letters.items()}
我想做的下一件事是,对于每个字母(键),它的值使用以下方法增加 3:
ek= 3
这样,我们将拥有:
'a': 3
'b': 4
等等。
我怎样才能做到这一点而不必手动做呢?我想提出一些想法,但这两种方法都不成功:
encoding= {sum(ek) for x in encoding.values()}
TypeError: 'int' object is not iterable
encoding.update(sum(ek) in encoding.values())
TypeError: 'int' object is not iterable
任何帮助将不胜感激。干杯!
可以直接在创建中做
encoding
,添加变量内置函数
sum
接收一个可迭代对象并通过对其进行迭代返回其项的总和。您正在传递字典中的值,这些值是整数,因此会出现错误(您不能迭代整数)。如果您不想在创建时添加,
encodig
您可以稍后使用循环for
修改“就地”值:或使用
dict.update
:无论哪种方式,输出都是: