从字典键中的所有元组中提取特定位置

Extract particular position from all tuples in dictionary keys

从键为 (x, y) 对的字典中,我想获取所有 x 的列表和所有 y 的列表。

我的字典是这样的:

(x, y) : value

{(17, 19): 1, (22, 24): 0, (18, 24): 1}

目标是:

x={17,22,18} and y={19,24,24}
d ={(17, 19): 1, (22, 24): 0, (18, 24): 1}
x,y = zip(*d)
x,y

输出:

((17, 22, 18), (19, 24, 24))

不使用 zip 的解决方案:

x = [ i[0] for i in d ]
y = [ i[1] for i in d ]

这是使用解构赋值的一种方法的交互式演示:

>>> d = {(17, 19): 1, (22, 24): 0, (18, 24): 1}
>>> k = d.keys()
>>> x = [k1 for (k1,k2) in k]
>>> x
[18, 17, 22]
>>> y = [k2 for (k1,k2) in k]
>>> y
[24, 19, 24]
>>> 

它是一个字典,要在单独的列表中获取键,您可以使用列表推导

d ={(17, 19): 1, (22, 24): 0, (18, 24): 1}

x = [i[0] for i in d.keys()]
y = [i[1] for i in d.keys()]

x
[17, 22, 18]

y
[19, 24, 24]