【发布时间】:2020-10-22 08:23:08
【问题描述】:
如何使用字典推导获得这段代码的等效结果?
dict_sq = dict()
i = 0
for y in range(grid_height):
for x in range(grid_width):
dict_sq[(x, y)] = i
i = i + 1
{(0, 0): 0, (0, 1): 1, (0, 2): 2, (1, 0): 3, (1, 1): 4, (1, 2): 5, (2, 0): 6, (2, 1): 7, (2, 2): 8}
我使用这种方法获得了相同的结果,但键和值颠倒了:
dict(enumerate((x, y) for y in range(grid_height) for x in range(grid_width)))
但我需要索引作为值而不是键。有没有优雅的方式使用枚举?
【问题讨论】:
-
注意:你有两次
grid_height,不应该有grid_width或者像grid_size这样的不同名字吗? -
你说得对,我没注意到。
标签: python indexing dictionary-comprehension