请教Python代码{n:i for i, n in enumerate(nums1)}的含义及解析
解析代码
{n:i for i, n in enumerate(nums1)} 这是Python的字典推导式,逻辑和你接触过的列表推导式一致,只是最终产出的是字典而非列表,下面拆解细节:
enumerate(nums1):把列表nums1转成可迭代的索引-元素对,每次迭代返回(索引位置, 对应元素)的元组。比如nums1 = [2,4,6]时,会依次输出(0,2)、(1,4)、(2,6)。for i, n in enumerate(nums1):循环遍历上述迭代对象,把每个元组里的索引赋值给i,元素值赋值给n。{n:i ...}:定义字典的键值关系——用当前元素n作为字典的键,用它在nums1里的索引i作为对应的值。
举个实际例子:
如果nums1 = [1,3,5,7],运行这段代码后得到的字典是 {1:0, 3:1, 5:2, 7:3}。
⚠️ 注意:如果nums1里存在重复元素,后面出现的元素会覆盖前面的键值对,因为字典的键必须唯一。比如nums1 = [2,2,3],最终生成的字典是{2:1, 3:2}。
内容的提问来源于stack exchange,提问作者20ftpython
相关产品推荐
相关产品推荐

