Skip to main content
 首页 » 编程设计

Python:列表字典理解

2025年05月04日14softidea

我有以下代码:

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