假设我有在Python 2所列出:的字典组合所有可能的排列出2所列出
keys = [1, 2, 3, 4, 5, 6]
values = [7, 8, 9]
我想所有排列出的2所列出
类似的:
d = [{1:7, 2:8, 3:9}, {1:8, 2:9, 3:7}, ....... ]
我怎么能做到这一点?
假设我有在Python 2所列出:的字典组合所有可能的排列出2所列出
keys = [1, 2, 3, 4, 5, 6]
values = [7, 8, 9]
我想所有排列出的2所列出
类似的:
d = [{1:7, 2:8, 3:9}, {1:8, 2:9, 3:7}, ....... ]
我怎么能做到这一点?
你的意思是这样的吗?
>>> import itertools
>>> keys = [1, 2, 3, 4, 5, 6]
>>> values = [7, 8, 9]
>>> d = [dict(zip(kperm, values)) for kperm in itertools.permutations(keys, len(values))]
>>> len(d)
120
>>> d[:10]
[{1: 7, 2: 8, 3: 9}, {1: 7, 2: 8, 4: 9}, {1: 7, 2: 8, 5: 9}, {1: 7, 2: 8, 6: 9}, {1: 7, 2: 9, 3: 8}, {1: 7, 3: 8, 4: 9}, {1: 7, 3: 8, 5: 9}, {1: 7, 3: 8, 6: 9}, {1: 7, 2: 9, 4: 8}, {1: 7, 3: 9, 4: 8}]
谢谢,这是我想要的 – 2012-03-12 15:49:45
所以我想知道....你有什么打算与此有关呢? – 2012-03-12 16:40:30
卡尔,我正在使用替代密码,我试图自己解密一个简单的密码,看看我能走多远 这些密钥代表英语中最常见的字符 这些值是密文中最常见的字符 我正在执行的解密函数需要一个由字典表示的关键字。 所以我试图让所有可能的字典,其中键是最常见的字符和值在密码最常见的字符。 – 2012-03-12 17:52:33
>>>import itertools
>>>list(itertools.product(*[[1, 2, 3, 4, 5, 6],[7, 8, 9]]))
>>>[(1, 7), (1, 8), (1, 9), (2, 7), (2, 8), (2, 9), (3, 7), (3, 8), (3, 9), (4, 7), (4, 8), (4, 9), (5, 7), (5, 8), (5, 9), (6, 7), (6, 8), (6, 9)]
答案我没有看到'dict'这里... – juliomalegria 2012-03-12 14:23:40
的类型的字典的列表,你可以做'[{K:V}为K,V在itertools.product(* [键,值])]',但我真的没有看到字典,这里的点... – Kimvais 2012-03-12 14:29:39
您可以只申请字典内对任何迭代。 – Marcin 2012-03-12 14:33:10
你是怎么想的结果呈现的?字典“d”的标准是什么? – fraxel 2012-03-12 14:23:08
为什么你想要一个字典列表? – Kimvais 2012-03-12 14:27:20
感谢所有,DSM给我,我想 – 2012-03-12 15:50:58