如何阅读此代码

我在Internet上找到了下面的代码,并试图理解它。


不确定稍后在循环中为i赋值时如何使用i的值。


还要感谢有人可以解释它是如何工作的,即为每次迭代分配回去


>>> import pprint

>>> ds = dict((chr(i), range(i, i+5)) for i in range(65,70))


侃侃尔雅
浏览 232回答 3
3回答

子衿沉夜

您正在查看生成器表达式。之前的部分在表达式for定义的循环中执行for。生成器表达式生成key, value一对对序列,dict()构造函数使用它们来构建字典。您可以将代码读取为具有与以下结果相同的结果:ds = {}for i in range(65, 70):    ds[chr(i)], range(i, i+5)在Python 2.7和Python 3中,您也可以使用dict理解:ds = {chr(i): range(i, i+5) for i in range(65,70)}结果将是相同的;您可以定义key: value表达式以从循环中构建字典。在生成器表达式以及(列表,字典或集合)理解中,您可以使用多个嵌套循环,并添加if语句来过滤数据。这些是按嵌套顺序定义的;最外循环优先:result = [i ** 2 for foo in range(10) if foo % 2 == 0 for i in range(foo)]可以理解为:result = []for foo in range(10):    if foo % 2 == 0:        for i in range(foo):            result.append(i ** 2)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python