배열 a=['a','b','c']
이 주어지면 배열의 데카르트 곱을 중복하지 않고 어떻게 반환 할 것입니까? 예 :중복이없는 목록의 데카르트 곱
[['a', 'a' , 'a' ,'a']
['a', 'a' , 'a' ,'b']
['a', 'a' , 'a' ,'c']
['a', 'a' , 'b' ,'b']
['a', 'a' , 'b' ,'c']
['a', 'a' , 'c' ,'c']
...etc..]
How to generate all permutations of a list in Python에 따라, 나는 시도 :
print list(itertools.permutations(['a', 'b' , 'c'], 4))
[]
print list(itertools.product(['a', 'b' , 'c'], repeat=4)
하지만 중복과 데카르트의 제품을 얻을. 예를 들어 목록에는 분명히 동등한 ['a','a','b','b']
과 ['a','b','b','a']
이 모두 포함됩니다.
참고 : 'a', 'b', 'c'는 숫자를 저장하는 변수로 1,2,3을 말합니다. 따라서 편지의 조합 목록을 얻은 후에는 다음과 같이해야합니다 : say,
['a','b','c','c'] ----> a*b*c*c = 1*2*3*3 = 18
파이썬에서 가장 빠른 방법은 무엇입니까? 그것은 가능한가/빠른 numpy와 함께 할 것이라고 ?? 감사합니다.
나는 eval (s, globals(), values)이하는 일을 얻지 못한다. ?? – Oniropolo
전달할 문자열은''a * b * c * d "'와 같습니다. 'eval' 할 때 두 번째 인수는 사용할 로컬 사전입니다. 예 :'{ 'a': 2, 'b': 3, 'c': 1, 'd': 1}'. 그것은 파이썬에게 각 변수의 값을 알려줍니다. – Felipe