Форум сайта python.su
0
Нужно сгенерировать колоду карт. На ум пришло следующее:
#!/usr/local/bin/python3 # -*- coding: utf-8 -*- a = ('6', '7', '8', '9', '10', 'В', 'Д', 'К', 'Т') b = ('ч', 'к', 'п', 'б') c = [] for x in range(len(a)): for y in range(len(b)): c.append(a[x] + b[y]) print(c)
Отредактировано asphix (Июнь 6, 2012 15:26:47)
Офлайн
3
Может быть использовать модуль random из стандартной библиотеки?
Офлайн
0
newca9h
random неплохо бы подошёл для перемешивания сгенерённой колоды
random.shuffle()
Отредактировано asphix (Июнь 6, 2012 15:43:51)
Офлайн
13
Так?
from itertools import product
c = [x+y for x,y in product(a,b)]
Отредактировано Ed (Июнь 6, 2012 16:14:26)
Офлайн
52
>>> a = [1,2,3] >>> b = [4,5,6] >>> [ (i, j) for i in a for j in b ] [(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]
Отредактировано fata1ex (Июнь 6, 2012 16:17:50)
Офлайн
0
fata1ex, гениально, спасибо! 
сделал в итоге так:
def cards_gen(): a = ('6', '7', '8', '9', '10', 'В', 'Д', 'К', 'Т') b = ('ч', 'к', 'п', 'б') return [x + y for x in a for y in b]
Офлайн