2011-03-08 41 views
2

我想寫一個使用網格的遊戲,我需要通過組合其他兩個集合來創建集合的方法。一些在Python中結合集合的方法

例如,如果我有[a, b, c][1, 2, 3],Python 3中是否有任何函數會給我[a1, a2, a3, b1, b2, b3, c1, c2, c3]

回答

4

使用itertools.product

In [41]: import itertools 

In [42]: x='abc' 

In [43]: y='123' 

In [45]: [letter+num for letter,num in itertools.product(x,y)] 
Out[45]: ['a1', 'a2', 'a3', 'b1', 'b2', 'b3', 'c1', 'c2', 'c3'] 
+1

請注意,產品不關心可迭代x和y的類型。 'x ='abc''和'x = ['a','b','c']'一樣好。 – 2011-03-08 03:29:01

0
letters = ["a", "b", "c"] 
numbers = [ 1 , 2 , 3 ] 

[x + str(y) for x in letters for y in numbers]