我是Pyhton的新手,想要使用由两个值组成的键来过滤字典。在这里我的命令:
{(0, 'DRYER'): [103.0, 131.0, 9.0, 1.24],
(2, 'DRYER'): [106.0, 120.0, 5.0, 1.24],
(2, 'WASHING'): [70.0, 90.0, 11.0, 0.19]}
密钥由两个值(n,a)
组成,我想在n=2
创建一个新字典,结果是:
{(2, 'DRYER'): [106.0, 120.0, 5.0, 1.24],
(2, 'WASHING'): [70.0, 90.0, 11.0, 0.19]}
如果有人可以提供帮助,我会感激不尽!
答案 0 :(得分:1)
检查元组键的第一个值是否为2,具有dict理解:
{k: v for k, v in dct.items() if k[0]==2}
所以:
In [11]: dct = {(0, 'DRYER'): [103.0, 131.0, 9.0, 1.24],
...: (2, 'DRYER'): [106.0, 120.0, 5.0, 1.24],
...: (2, 'WASHING'): [70.0, 90.0, 11.0, 0.19]}
...:
In [12]: {k: v for k, v in dct.items() if k[0]==2}
Out[12]:
{(2, 'DRYER'): [106.0, 120.0, 5.0, 1.24],
(2, 'WASHING'): [70.0, 90.0, 11.0, 0.19]}
答案 1 :(得分:0)
尝试使用filter
new_dict = dict(filter(function(), old_dict.items()))
在您的情况下function()
将是
lambda it: True if it[0][0] == 2 else False
基本上filter()
抓取一个函数和一个iterable,并从函数中删除所有元素,如果函数返回False