我有一本字典
kwarg = {'a': 0 , 'b': 1 , 'c': 2}
,我想根据以下值生成所有可能的替代字典:
x1={'a': 1 , 'b': 0 , 'c':2}
x2={'a': 1 , 'b': 2 , 'c':0}
x3={'a': 0 , 'b': 2 , 'c':1}
x4={'a': 0 , 'b': 1 , 'c':2}
x5={'a': 2 , 'b': 1 , 'c':0}
x6={'a': 2 , 'b': 0 , 'c':1}
但是我有6个元素(0,1,2,3,4,5)
,需要使用python algorytm。
答案 0 :(得分:5)
应该遵循python3
中的代码
import itertools
def main():
'''The Main'''
kwarg = {'a': 0 , 'b': 1 , 'c': 2}
keys = kwarg.keys()
for comb in itertools.permutations(kwarg.values()):
print(dict(zip(keys, comb)))
if __name__ == '__main__':
main()
答案 1 :(得分:0)
python algorithm
意味着您不能使用任何预定义的功能/方式吗?如果是,则以下代码可能很好,或者提供了一个很好的起点:
possibilites = [0, 1, 2, 3, 4, 5]
lstOfDicts = []
for a in possibilites:
for b in possibilites:
for c in possibilites:
lstOfDicts.append({"a" : a, "b" : b, "c" : c})
print(lstOfDicts)
答案 2 :(得分:0)
这是我的看法,更具可读性和基本性:
import itertools
kwarg = {'a': 0 , 'b': 1 , 'c': 2}
val=list(kwarg.values())
new=list(itertools.permutations(val))
d=dict()
for i in range(0,len(new)):
for j in range(0,len(new[i])):
if j==0:
d['a']=new[i][j]
if j==1:
d['b']=new[i][j]
if j==2:
d['c']=new[i][j]
print(d)