2016-03-31 15 views
-2

kullanarak birleştirebilirsinizsahip olduğumu nasıl bir listenin elemanları piton 3

l = [["a", "b", "c"], ["1", "2", "3"], ["x", "y", "z"]] 

nasıl tüm unsurların kombinasyonu listesini alabilirsiniz?

combine(l) 

itertools.product fonksiyonu olarak Python

["a1x", "a2x", "a3x", "b1x", "b2x", "b3x", "c1x", "c2x", "c3x", 
"a1y", "a2y", "a3y", "b1y", "b2y", "b3y", "c1y", "c2y", "c3y", 
"a1z", "a2z", "a3z", "b1z", "b2z", "b3z", "c1z", "c2z", "c3z"] 
+0

. Örneğin, a1b1c1, 'a1', 'b1' ve 'c1' isimlerinin kabul edildiği varsayılırsa, olması gereken nedir? – timgeb

+0

@timgeb dizeleri –

+0

Neden "c1a2b2" veya "b1c1a2" sonuçta değil? – styvane

cevap

1

istediğiniz kombinasyonu Bu tür kullanılabilir dönmelidir. Sadece geri bir dize olarak her tuple katılmak için işlem sonrası kendi çıkışında zorunda:

import itertools 
l = [["a", "b", "c"], ["1", "2", "3"], ["x", "y", "z"]] 
combined = ["".join(combination) for combination in itertools.product(*l)] 
print(combined) 

Sonuçlar içinde: geçersiz sözdizimi var

['a1x', 'a1y', 'a1z', 'a2x', 'a2y', 'a2z', 'a3x', 'a3y', 'a3z', 'b1x', 'b1y', 'b1z', 'b2x', 'b2y', 'b2z', 'b3x', 'b3y', 'b3z', 'c1x', 'c1y', 'c1z', 'c2x', 'c2y', 'c2z', 'c3x', 'c3y', 'c3z']