字典到列表的映射
Dictionary to list Mapping
我有一个像这样的列表
l = [['A', 'B', 'C', 'D'], ['P', 'Q', 'R', 'S']]
还有像
这样的字典
d = {'U':'A', 'L':'B', 'M':'C', 'N':'D', 'O':'F'}
我想映射,如果第一个内部列表中存在字典的值,那么它将使用字典键映射第二个内部列表,否则丢弃字典键。
预期输出:
{'U':'P', 'L':'Q', 'M':'R', 'N':'S'}
你可以把l
变成它自己的映射:
l_map = dict(zip(*l))
然后
{key: l_map.get(value) for key, value in d.items() if value in l_map}
演示:
In [3]: l_map
Out[3]: {'A': 'P', 'B': 'Q', 'C': 'R', 'D': 'S'}
In [4]: {key: l_map.get(value) for key, value in d.items() if value in l_map}
Out[4]: {'U': 'P', 'L': 'Q', 'M': 'R', 'N': 'S'}
我有一个像这样的列表
l = [['A', 'B', 'C', 'D'], ['P', 'Q', 'R', 'S']]
还有像
这样的字典d = {'U':'A', 'L':'B', 'M':'C', 'N':'D', 'O':'F'}
我想映射,如果第一个内部列表中存在字典的值,那么它将使用字典键映射第二个内部列表,否则丢弃字典键。
预期输出:
{'U':'P', 'L':'Q', 'M':'R', 'N':'S'}
你可以把l
变成它自己的映射:
l_map = dict(zip(*l))
然后
{key: l_map.get(value) for key, value in d.items() if value in l_map}
演示:
In [3]: l_map
Out[3]: {'A': 'P', 'B': 'Q', 'C': 'R', 'D': 'S'}
In [4]: {key: l_map.get(value) for key, value in d.items() if value in l_map}
Out[4]: {'U': 'P', 'L': 'Q', 'M': 'R', 'N': 'S'}