2011-01-29 8 views
6

Para un programa de prueba estoy haciendo un modelo simple de la NFL. Me gustaría asignar un registro (ganancias y pérdidas) a un equipo como valor en un diccionario? ¿Es eso posible?¿Puede un valor en un diccionario de Python tener dos valores?

Por ejemplo:

afcNorth = ["Baltimore Ravens", "Pittsburgh Steelers", "Cleveland Browns", "Cincinatti Bengals"] 

Si los Ravens tuvieron 13 victorias y 3 pierde, ¿puede la cuenta de Inglés para ambos de esos valores? ¿Si es así, cómo?

+2

El código que has enviado es una lista de cadenas, no un diccionario. –

Respuesta

16

seguro, simplemente hacer que el valor de una lista o tupla:

afc = {'Baltimore Ravens': (10,3), 'Pb Steelers': (3,4)} 

Si se vuelve más complicado, es posible que desee hacer una estructura más complicada que una tupla; por ejemplo, si le gustan los diccionarios, puede poner un diccionario en su diccionario para que pueda diccionario mientras redacta el diccionario.

afc = {'Baltimore Ravens': {'wins':10,'losses': 3}, 'Pb Steelers': {'wins': 3,'losses': 4}} 

Pero con el tiempo es posible que desee subir a clases ...

3

Los valores en el diccionario pueden ser tuplas o, tal vez mejor en este caso, las listas:

d = {"Baltimore Ravens": [13, 3]} 
d["Baltimore Ravens"][0] += 1 
print d 
# {"Baltimore Ravens": [14, 3]} 
1

Bueno, se puede utilizar una tupla (o una lista):

records = {} 
records["Baltimore Ravens"] = (13, 3) 

O podrías ser elegante y hacer una clase Record con Record.wins y record.losses, pero eso probablemente sea excesivo.

(Como otra respuesta señala, utilizando una lista significa que se puede hacer aritmética sobre los valores, los cuales podrían ser útiles.)

+0

Puede hacer operaciones aritméticas en cualquier valor. Tener una lista o tupla te permite ** iterar fácilmente ** sobre los valores. (Y, tal vez, haga matemáticas con cosas como 'sum()' que hacen la iteración por usted). –

Cuestiones relacionadas