Ich bekomme einen Fehler beim Sortieren von ungefähr 470000 Tupeln. Ich lese Daten aus CSV-Datei in die Liste von TupelnValueError: zu viele Werte zum Entpacken mit zu vielen Tupeln
fp = open(filename, 'Ur')
for line in fp:
listOfCitiesTuples.append(tuple(line.strip().split(',')))
fp.close()
Tupeln einige Städte Namen mit einer Nummer zugeordnet sind.
[('Chiredzi', '4117'), ('Gaths', '4117'), ('Masvingo', '4117'), ('Chivhu', '4120'), ('Gweru', '4120'), ('Kwekwe', '4120'), ('Mvuma', '4120'), ('Redcliffe', '4120'), ('Shurugwi', '4120'), ('Zvishavane', '4120')]
Ich sammle alle zu derselben Nummer zugeordnet Namen zusammen in einer Liste und wo es sich auf diese Zahl und bilden eine dict all dieser Elemente, so etwas wie dieses
{'1': ['Bombuflat', 'Garacharma', 'Port Blair', 'Rangat'], '113': ['Hydra', 'Kouba'], '294': ['Vienna', 'Wien'], '1327': ['Lambarene', 'Ndjole']}
folgende Methode verwenden zu erreichen es
for k, v in listOfCitiesTuples: dictOfCitiesTuples.setdefault(v, []).append(k)
Dies funktioniert gut für eine kleinere Anzahl von Tupeln (ich habe 20.000 bisher getestet), aber scheint nicht, wie 470000. auf größere Anzahl zu arbeiten
Könnte große Anzahl von Tupel ein Problem sein oder könnte es aufgrund beschädigter Datei sein? Wenn es aufgrund einiger beschädigter Daten in einer Datei ist, gibt es etwas, was ich tun kann, um herauszufinden, welche beschädigten Daten es ist, versuchen Sie, Ausnahme?
ich diesen Fehler
File "/../view.py", line 186, in getCities
for k, v in listOfCitiesTuples: dictOfCitiesTuples.setdefault(v, []).append(k)
ValueError: too many values to unpack (expected 2)
Importieren Sie dieses Tupel in einen Pandas-Datenrahmen und prüfen Sie, ob die Datei beschädigt ist. – min2bro
Was ist der vollständige Fehler? Es ist wahrscheinlicher, dass Sie 1 oder 3 Werte haben, die Sie in zwei entpacken. Vielleicht hat eine Stadt ein Komma in ihrem Namen, also bekommt man 3 Werte. –
@jas das ist nicht der volle Fehler. Welche Codezeile wird ausgeführt? –