2016-08-10 5 views
0

Ich versuche Tupel in Listen einer Liste in Listen zu konvertieren. Genauer gesagt möchte ich nur die Tupel in Listen entfernen. Der Original-Datensatz sieht aus wieTupel zu Listen in Liste umwandeln

collections = [[None], [(u'John Demsey ', u' Cornelia Guest')], [(u'Andres White ', u' Margherita Missoni')], [(u'Bibi Monahan, Tuki Br', u'o, ')], [(u'W$ 

Was würde ich auf achivee mag, ist:

collections = [[None], [u'John Demsey ', u' Cornelia Guest'], [u'Andres White ', u' Margherita Missoni']...] 

Dennoch mit dem folgenden Code, ich nicht mein Ziel zu erreichen.

def conv(): 
    for i in range(len(collections)): 
     if collections[i] != None: 
      collections[i] = list(collections[i]) 
     else: 
      collections[i][0] = list(collections[i][0]) 
    return collections[i] 

conv = conv() 
print(conv) 

Im Code habe ich versucht, Tupel in Listen zu konvertieren. Das sieht jedoch nicht nach Arbeit aus. Könnte jemand mir helfen, das Problem zu identifizieren und mir helfen, dies zu korrigieren? Vielen Dank!!

Antwort

1

gehen eher für chain in itertools und Liste Verständnis:

from itertools import chain 

[list(i) if i else [i] for i in chain.from_iterable(collections)] 

#Out[110]: 
#[[None], 
# [u'John Demsey ', u' Cornelia Guest'], 
# [u'Andres White ', u' Margherita Missoni']] 
+0

Vielen Dank für Ihre Hilfe :) – achimneyswallow

2

Versuchen Sie, auf diese Weise zu tun:

def conv(): 
    return [list(c[0]) if isinstance(c[0], tuple) else c for c in collections] 

In Ihrem Code, den Sie auch nur das letzte Element der Liste zurück.

Verwandte Themen