2017-01-28 28 views
-1

ich eine riesige Liste von Listen habe, ist dies ein Teil davon:Python: Joining Zeichen in Unterlisten der Liste von Listen

[['cusA', 'zupT', 'rcnA', 'cusA', 'zupT', 'zupT']] 

Ich habe die folgende Operation auf der gesamten Liste der Listen:

[list(x) for x in set(tuple(x) for x in my_list)] 

, weil ich einzigartige Informationen in den Unterlisten haben möchte. Dies ergab folgende:

[['c', 'u', 's', 'A'], ['r', 'c', 'n', 'A'], ['z', 'u', 'p', 'T']] 

Das ist sehr gut, da es einzigartig worden ist, aber jetzt brauche ich sie aus, in ihrem ursprünglichen zu sein, ohne Zeichen-für-Zeichen aufgebrochen werden.

Gibt es eine Möglichkeit, sie wieder in die Unterlisten aufzunehmen?

+1

Ist die Reihenfolge der Listen in der Liste wichtig? –

+0

Ist 'my_list' die Liste im ersten Teil? Denn dann bekomme ich ein anderes Ergebnis. –

+0

Hallo. my_list ist die äußere Liste @tobias_k –

Antwort

1

Verwenden Sie anstelle von list(x)''.join(x).

Aber Sie können die Strings selbst in einem Satz statt Tupel aufrufen: list(set(my_list)).

+0

Wenn Reihenfolge der Listen keine Rolle spielt * –

1

wie Sie bereits erwähnt:

print(''.join(['c', 'u', 's', 'A'])) # cusA 

für Ihre ganze Liste können Sie dies tun: Sie die Saiten join können

lst = [['c', 'u', 's', 'A'], ['r', 'c', 'n', 'A'], ['z', 'u', 'p', 'T']] 

str_lst = [''.join(item) for item in lst] 
print(str_lst) # ['cusA', 'rcnA', 'zupT'] 

beachten Sie, dass es keinen Sinn, eine Liste der einzelnen bei der Schaffung von Figuren; Eine Zeichenkette selbst verhält sich genau wie eine Liste von Zeichen (eine unveränderliche); so könnte man Directoy dies tun: wenn

print(set(['cusA', 'zupT', 'rcnA', 'cusA', 'zupT', 'zupT'])) 
# {'zupT', 'cusA', 'rcnA'} 
# if you need a list again instead of a set: 
print(list(set(['cusA', 'zupT', 'rcnA', 'cusA', 'zupT', 'zupT']))) 
# ['zupT', 'cusA', 'rcnA'] 

, die den Auftrag nicht erhalten werden ...

1

Wenn die Reihenfolge der Inhalte der inneren Listen spielt keine Rolle, man kann sie in einen Satz drehen, Welches eine eine ungeordnete Ansammlung von einzigartigen Elemente, und dann diesen Satz zurückdrehen in eine Liste:

result = [list(set(li)) for li in my_list] 

Drucke:

[['cusA', 'rcnA', 'zupT']] 
Verwandte Themen