如何基于多个列表的组合生成Python字典?
解决Python列表组合生成指定字典的问题
嘿,我来帮你搞定这个字典生成的问题!你想要的其实是把func和m的所有两两组合,给atr里的每个元素都配上一模一样的组合列表对吧?之前没成功没关系,咱们用Python的标准库就能轻松解决~
首先,我们可以用itertools模块里的product函数来生成两个列表的笛卡尔积(也就是所有可能的两两组合),然后用字典推导式快速构建目标字典。
完整代码示例
import itertools # 定义你的三个列表 atr = ['a','b','c'] m = ['h','i','j'] func = ['x','y','z'] # 先生成func和m的所有两两组合,这是每个键对应的值 combined_pairs = list(itertools.product(func, m)) # 用字典推导式生成目标字典 py_dict = {key: combined_pairs for key in atr} # 验证结果 print(py_dict)
代码解释
itertools.product(func, m):这个函数会返回func中每个元素和m中每个元素的配对,正好是你需要的('x','h'), ('x','i'), ..., ('z','j')这些组合,转成列表后就是每个键对应的值。- 字典推导式
{key: combined_pairs for key in atr}:遍历atr里的每个元素作为字典的键,每个键都绑定提前生成好的组合列表,一步到位生成你要的字典。
运行这段代码后,得到的py_dict就完全符合你的期望啦!
内容的提问来源于stack exchange,提问作者user46543
相关产品推荐
相关产品推荐

