Python: Munging Daten mit '.join' (TypeError: sequence Element 0: erwartet string, tuple gefunden)
Habe ich Daten in folgendem format:
[('A', 'B', 'C'),
('B', 'C', 'A'),
('C', 'B', 'B')]
Ich bin auf der Suche, um dieses zu erhalten:
ABC
BCA
CBB
Ich bin in der Lage, zu konvertieren eines Tupels in der Zeit:
>> "".join(data[0])
.. 'ABC'
Jedoch, wenn ich versuche, die Gespräche die ganze Liste in Python gibt mir eine Fehlermeldung:
>> "".join(data[:])
.. TypeError: sequence item 0: expected string, tuple found
Einen Tipp wie ich in der Lage, konvertieren Sie die ganze Liste?
Danke!
btw,
data[:]
und data
hat denselben EffektInformationsquelleAutor jjjayn | 2015-01-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
.join
erwartet eine Sequenz von strings, aber Sie geben Sie eine Sequenz von Tupeln.Um das Ergebnis zu erhalten, das Sie geschrieben, Sie müssen sich jedes element in jedem Tupel, und dann verknüpfen Sie die einzelnen Tupel zusammen:
Dies funktioniert, weil
.join
akzeptieren eine generator expression, so dass Sie zu Durchlaufendata
(Ihre Liste von Tupeln).Wir haben also zwei joins: inner join erstellt eine Zeichenfolge aus drei Buchstaben (z.B.
'ABC'
), und das outer-join-Orte newline-Zeichen ('\n'
) zwischen Ihnen..join
eine Sequenz von Tupeln, die durch versehentlich schreiben''.join(elems) for elem in elems
, elems als iterierbar mit den geteilten Streichern. , Das wird produzieren diese Fehlermeldung.InformationsquelleAutor sapi
Ausgabe;
One-liner;
Müssen Sie zu erreichen jedes element in der Liste zuerst.
for
erstenInformationsquelleAutor GLHF
InformationsquelleAutor Stavinsky