我有一个字典列表:
some_list = [
{
item1:'a',
item2:['1', '2']
},
{
item1:'b',
item2:['1', '2']
},
{
item1:'a',
item2:['1']
}
]
我想得到:
['a 1', 'a 2', 'b 1', 'b 2'] 其中项目 1 中的每个值与每个字典的项目 2 中的值配对,然后只剩下唯一的字符串。
我可以想到一个明显的方法来做到这一点,即:
我想知道这些是否是使用列表理解的更优雅的方法。
最佳答案
如果顺序无关紧要,那么您可以轻松地将您的逻辑转换为集合理解(如果您愿意,还可以转换为 list
):
In [1]: some_list = [
...: {
...: 'item1':'a',
...: 'item2':['1', '2']
...: },
...: {
...: 'item1':'b',
...: 'item2':['1', '2']
...: },
...: {
...: 'item1':'a',
...: 'item2':['1']
...: }
...: ]
In [2]: {f"{d['item1']} {v}" for d in some_list for v in d['item2']}
Out[2]: {'a 1', 'a 2', 'b 1', 'b 2'}
关于python - 从字典列表中的字典值中查找唯一字符串对的优雅方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48408751/