2011-03-31 24 views
11

¡Un principiante de Python! Necesito ayuda para convertir una lista de listas de tuplas de tuplas.Python: conversión de lista de listas a tuplas de tuplas

Quiero llamar a la función append_as_tuples, pero cada vez que lo vuelvo, que dice
sólo puede concatenar las listas (no tuplas) a listas de

Esto es lo que tengo hasta ahora:

def append_as_tuple(t, l): 
    ''' Convert list l to a tuple and append it to tuple t as a single value ''' 
    return t[:] + (tuple(l),) 

def convert_lists(lol): 
    t = [] 
    if type(lol) == a or type(lol) == tuple: 
     return [convert_lists(lol) for i in t] 
    return append_as_tuples(lol,a) 

#- test harness# 

a=[range(5), range(10,20), ['hello', 'goodbye']] 
print a 
print convert_lists(a) 
print convert_lists([]) 
+2

Su 'si el tipo (lol) == a' está bastante equivocado; ** aparece ** para que funcione solo porque tiene una variable global llamada 'a' en su" arnés de prueba "y' a' no es una instancia 'tipo' ... entonces esa prueba será' False'. Sin el 'a' global, se generaría una excepción. –

Respuesta

44

Convertir list_of_lists a una tupla de tuplas, utilice

tuple_of_tuples = tuple(tuple(x) for x in list_of_lists) 
+2

Gracias señor. Esto resolvió mi problema. –

4

hay un pitón construido en función de: lista y tupla lista

(la tupla) ... a conver tupla a la lista tupla (la lista) .... a la lista de convertir a tupla