python - 将嵌套列表中的元素与字典中的值进行匹配

标签 python

我有一个 list

l = [['a', 's', 'l'], ['a', 'g', 'l'], ['a', 's', 'l'], ['g', 's', 'l'], ['a', 'l', 'g']]

我还有一本字典

d = [{'a': 1, 'v': 6, 'c': 7}, {'g': 3, 's': 4, 'l': 9}]

我需要创建另一个 l 形状的列表,但其值与 d 匹配:

d = [[1, 4 ,9], [1, 3 , 9], [1, 4 , 9], [3, 4 , 9], [1, 9 , 3]]

我尝试使用 for 循环来执行此操作,但嵌套列表给我带来了麻烦。

如有任何帮助,我们将不胜感激。

最佳答案

简单的理解就可以了:

combined_mapping = {k: v for subdict in d for k, v in subdict.items()}
mapped = [[combined_mapping[element] for element in sublist] for sublist in l]
mapped

输出:

[[1, 4, 9], [1, 3, 9], [1, 4, 9], [3, 4, 9], [1, 9, 3]]

关于python - 将嵌套列表中的元素与字典中的值进行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55464679/

相关文章:

python - 使用 aumbry 支持加密和非加密配置

python - 如何本地化 Google App Engine 上的应用程序?

python - 打印带有重复键的多维字典

python - 使用 minidom 解析 Bash 导出变量,Python 出错

python - 在 pandas 中将函数应用于 DataFrame 中的每个单元格

python - raise StopIteration 和生成器中的 return 语句有什么区别?

python - 阻塞执行直到条件满足

python - 尝试模块化 python 代码但出现递归错误 : maximum recursion depth

if 语句的 Python 问题

Python 安装工具 : How can I add a private repository (gitlab) in my setup. py?