从字典中选择具有特定 key:value 对的对象
Selecting objects with specific key:value pair from dictionary
我想选择字典中具有特定 key:value 对的所有对象。
例如:如果我想要来自以下字典的“key”对:“x”:
mydictionary =
"1" : {
"key" : "x",
"key2" : "b",
},
"2" : {
"key" : "y",
"key2" : "b",
},
"3" : {
"key" : "y",
"key2" : "a",
},
"4" : {
"key" : "x",
"key2" : "b",
}
输出将是对象“1”和“4”。
这可能是重复的,但尽管进行了搜索,我还是找不到类似的问题。
是这样的吗?
[k for k, v in mydictionary.items() if v['key'] == 'x']
您需要用 {}
将字典括起来
In [164]: mydictionary
Out[164]:
{'1': {'key': 'x', 'key2': 'b'},
'2': {'key': 'y', 'key2': 'b'},
'3': {'key': 'y', 'key2': 'a'},
'4': {'key': 'x', 'key2': 'b'}}
In [165]: {i:mydictionary[i] for i in mydictionary if mydictionary[i]["key"] == "x"}
Out[165]: {'1': {'key': 'x', 'key2': 'b'}, '4': {'key': 'x', 'key2': 'b'}}
我想选择字典中具有特定 key:value 对的所有对象。
例如:如果我想要来自以下字典的“key”对:“x”:
mydictionary =
"1" : {
"key" : "x",
"key2" : "b",
},
"2" : {
"key" : "y",
"key2" : "b",
},
"3" : {
"key" : "y",
"key2" : "a",
},
"4" : {
"key" : "x",
"key2" : "b",
}
输出将是对象“1”和“4”。
这可能是重复的,但尽管进行了搜索,我还是找不到类似的问题。
是这样的吗?
[k for k, v in mydictionary.items() if v['key'] == 'x']
您需要用 {}
In [164]: mydictionary
Out[164]:
{'1': {'key': 'x', 'key2': 'b'},
'2': {'key': 'y', 'key2': 'b'},
'3': {'key': 'y', 'key2': 'a'},
'4': {'key': 'x', 'key2': 'b'}}
In [165]: {i:mydictionary[i] for i in mydictionary if mydictionary[i]["key"] == "x"}
Out[165]: {'1': {'key': 'x', 'key2': 'b'}, '4': {'key': 'x', 'key2': 'b'}}