Lista de listas de Python

Estoy atascado en un punto en el que quiero crear una lista de listas algo así como

[ [3,2,5], [4,8,1]...]

He escrito el siguiente código pero imprime [3,2,5,4,8,1,....] y no de la forma en que quiero que sea la estructura. Cualquier ayuda sería apreciada.

skill=[]
db=[ [] ]
file=open(filePath,'r')
for line in file:
    for word in line.split(','):
        skill.append(itDictionary[word.strip()])
    db.append(skill)
print db

preguntado el 03 de mayo de 12 a las 22:05

¿Cómo se ven las líneas en el archivo? -

las líneas en los archivos son simplemente cadenas separadas por comas que tienen valores en el diccionario, estoy almacenando esos valores como en mi ejemplo anterior. -

itDictionary[word.strip()] devolverá un valor (numérico) que estoy almacenando en la lista. -

Entonces, ¿cada línea solo tiene un conjunto de números delimitados por comas? Porque si ese es el caso, su código parece que debería funcionar. ¿Podría realmente pegar un ejemplo del archivo y itDictionary? -

es posible que desee ver el uso with open(filePath) as infp: En lugar de usar open por sí mismo, ya que esto cerrará el archivo cuando haya terminado con él. También parece que la comprensión de listas podría ser útil aquí:

2 Respuestas

Esto haría:

db=[]
file=open(filePath,'r')
for line in file:
    skill = []
    for word in line.split(','):
        skill.append(itDictionary[word.strip()])
    db.append(skill)
print db

contestado el 03 de mayo de 12 a las 22:05

Jaja. ¡Perfecto, muchas gracias! Incluso entendí cuál era el error que estaba cometiendo. - avinash shah

siempre feliz de echar una mano con las listas de python - Cobie

Es difícil saber lo que realmente necesita, pero ¿por qué no intenta algo como:

db = []
with open(filePath, 'r') as f:
    for line in f:
        db.append([itDictionary[word.strip()] for word in line.split(',')])
print db

contestado el 03 de mayo de 12 a las 22:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.