我想寫一個使用網格的遊戲,我需要通過組合其他兩個集合來創建集合的方法。一些在Python中結合集合的方法
例如,如果我有[a, b, c]
和[1, 2, 3]
,Python 3中是否有任何函數會給我[a1, a2, a3, b1, b2, b3, c1, c2, c3]
?
我想寫一個使用網格的遊戲,我需要通過組合其他兩個集合來創建集合的方法。一些在Python中結合集合的方法
例如,如果我有[a, b, c]
和[1, 2, 3]
,Python 3中是否有任何函數會給我[a1, a2, a3, b1, b2, b3, c1, c2, c3]
?
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']
Python有明確的產品功能(列表,也可以作爲itertools的一部分)。我不認爲地圖是去這裏的路。 – phooji 2011-03-08 03:20:28
letters = ["a", "b", "c"]
numbers = [ 1 , 2 , 3 ]
[x + str(y) for x in letters for y in numbers]
請注意,產品不關心可迭代x和y的類型。 'x ='abc''和'x = ['a','b','c']'一樣好。 – 2011-03-08 03:29:01