栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

列表字典的笛卡尔积

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

列表字典的笛卡尔积

好的,感谢@dfan告诉我我在错误的位置查看。我现在知道了:

from itertools import productdef my_product(inp):    return (dict(zip(inp.keys(), values)) for values in product(*inp.values())

编辑
:经过多年的Python经验,我认为一个更好的解决方案是接受

kwargs
输入,而不是输入字典。呼叫样式与原始呼叫样式更加类似
itertools.product
。另外,我认为编写生成器函数(而不是返回生成器表达式的函数)会使代码更清晰。所以:

def product_dict(**kwargs):    keys = kwargs.keys()    vals = kwargs.values()    for instance in itertools.product(*vals):        yield dict(zip(keys, instance))

如果你需要在一个字典来传递,

list(product_dict(**mydict))
。使用
kwargs
而不是任意输入类的一个显着变化是,它至少在Python
3.6之前防止键/值被排序。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/650382.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号