我有以下代码:
letters = 'defghijklmno'
K = {letters[i]:(i*i-1) for i in range(len(letters))}
我知道我正在遍历字母的序列变量以及值的计算方式,但我对如何将键设置为字符串的各个字符感到困惑。特别是因为我有字母被索引为我的关键字。基本上,我只是想弄清楚 python 如何计算这个表达式
请您参考如下方法:
dict 理解基本上是以下的同义词:
k = {}
for i in range(len(letters)):
k[letters[i]] = i*i - 1
区别在于它创建了一个新的作用域,而不是使用外部作用域:
>>> letters = 'defghijklmno'
>>> K = {letters[i]:(i*i-1) for i in range(len(letters))}
>>> i # was defined in an inner scope
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'i' is not defined
>>> k = {}
>>> for i in range(len(letters)):
... k[letters[i]] = i*i - 1
...
>>> i # still defined!
11
