Usaremos la biblioteca itertools, para generar una baraja de 52 cartas, recuerde que list() debe recibir un iterador de modo que crea la lista con cada elemento del iterador.
In [1]:
numeros = list(iter(range(1,14)))
In [2]:
numeros
Out[2]:
In [3]:
pintas = ['c', 'd', 't', 'p']
In [4]:
import itertools
In [5]:
cartas = list(iter(itertools.product(numeros,pintas)))
In [6]:
cartas
Out[6]:
In [7]:
len(cartas)
Out[7]:
In [8]:
import random
Aqui vamos a revolver las cartas...
In [9]:
random.shuffle(cartas)
In [10]:
cartas
Out[10]:
In [11]:
def es_roja(carta):
if carta[1] == 'd' or carta[1] == 'c':
return True
else:
return False
Existe las funciones map y filter, ellas reciben una funcion y un iterador como parametro y retorna un iterador, en el caso de map, con el resultado de la funcion, para filter con los parametros en que la función retorna verdadero
In [12]:
cartas_rojas = list(filter(es_roja, iter(cartas)))
In [13]:
cartas_rojas
Out[13]:
In [14]:
son_rojas = list(map(es_roja, iter(cartas)))
In [15]:
son_rojas
Out[15]:
In [16]:
len(son_rojas)
Out[16]:
In [17]:
def valor_carta(carta):
if carta[0] >= 10:
return 10
else:
return carta[0]
In [18]:
valores = list(map(valor_carta, iter(cartas)))
In [19]:
valores
Out[19]:
In [20]:
valores = set(map(valor_carta, iter(cartas)))
In [21]:
valores
Out[21]:
In [22]:
tupla = tuple(map(valor_carta, iter(cartas)))
In [23]:
tupla
Out[23]:
In [ ]: