我想使用字符串而不是字母itertools排列。Python的Itertools與字符串排列
import itertools
lst = list(permutations(("red","blue"),3))
#This returns []
我知道我可以這樣做:
a = list(permutations(range(3),3))
for i in range(len(a)):
a[i] = list(map(lambda x: 'red' if x==0 else 'blue' if x==1 else 'green',a[i]))
編輯: 我想在這鍵作爲我的輸入,並獲得這個作爲我的輸出
input: ("red","red","blue")
output:
[(’red’, ’red’, ’red’), (’red’, ’red’, ’blue’),\
(’red’, ’blue’, ’red’), (’red’, ’blue’, ’blue’), (’blue’, ’red’, ’red’), \
(’blue’, ’red’, ’blue’), (’blue’, ’blue’, ’red’), (’blue’, ’blue’, ’blue’)]
什麼是您預期的輸出?你原來的想法對我來說看起來不錯,它返回'[]'的原因是因爲你在長度列表中要求長度爲3的排列 - 沒有任何! – maxymoo
它可以很好地排列字符串。但是,您不能從任意順序的兩個列表中選取三個元素。這就是爲什麼你將空列表作爲輸出。 – JohanL
看起來像你想要的[產品](https://docs.python.org/3/library/itertools.html#itertools.product) – Copperfield