【发布时间】:2020-05-16 17:27:36
【问题描述】:
我正在尝试创建一个字典,其中值是通过迭代列表获得的。键是元组格式 (i,j)。
例如如果 i = 3, j = 3,则键是
(1,1), (1,2), (1,3), (2,1), (2,2), (2,3), (3,1), (3,2) , (3,3)。
如果我的清单如下,
lst = list(range(1, 10))
我如何获得这样的字典?
{(0, 0): 1, (0, 1): 2, (0, 2): 3, (1, 0): 4, (1, 1): 5, (1, 2): 6, (2, 0): 7, (2, 1): 8, (2, 2): 9}
我试过了:
dict = {(i,j): d for d in lst for i in range(1, i+1) for j in range(1, j+1)}
但我的字典的值严格来说是lst 的最后一个值。这是我的输出:
>>> {(0, 0): 9, (0, 1): 9, (0, 2): 9, (1, 0): 9, (1, 1): 9, (1, 2): 9, (2, 0): 9, (2, 1): 9, (2, 2): 9}
【问题讨论】:
-
如果每个字典条目的值都是从key计算出来的,能否说明key和value的关系或者value是如何计算的?
-
@Kelo 列表的第一个值对应(0,0),第二个值对应(0,1),第三个对应(0,2).....基本上在这个格式 (i,j)。很抱歉,我无法从理论上解释这一点。
标签: python list loops dictionary