Ich lese Zeilen aus einer Datei und möchte sie in eine Ganzzahl-Liste konvertieren.Die Datei hat eine Million Zeilen.So, ich habe mich nur gefragt, welche Prozedur es schneller machen wird.say, lst=['10','12','31','41','15']
ist die aktuelle Zeile, die aus der Datei gelesen wurde. Ich kann das Gießen tun Map-Funktion verwenden, wie- lst1=map(int,lst)
oder die für die Funktion verwenden, wie- lst2=[int(x) for x in lst]
Welches die effizienteste sein würde und der schnellste Weg, es zu tun?Leistungsvergleich zwischen Typ Casting-Verfahren
Antwort
[int(x, 10) for x in lst]
ist zumindest deutlich schneller als die zwei Möglichkeiten:
>>> from timeit import timeit
>>> setup = "lst = ['10','12','31','41','15']"
>>> timeit('map(int, lst)', setup)
4.454881024529442
>>> timeit('[int(x) for x in lst]', setup)
4.7153410495946275
>>> timeit('[int(x, 10) for x in lst]', setup)
1.6508196962672343
Getestet mit Python 2.7.11 (Ich gehe davon aus verwenden Sie 2 Python, weil sonst Ihre lst1=map(...)
irreführend wäre).
Danke. Ich weiß das wirklich zu schätzen. –
In Python 3 sehe ich vernachlässigbare Leistungsunterschiede. Tatsächlich bekomme ich das ursprüngliche Verständnis als etwas schneller und tatsächlich 'liste (map (int, lst))' als den schnellsten Ansatz, wiederum nur leicht. War das in Python 2 'int' ein Problem, das in Python 3 behoben wurde? –
@ juanpa.arrivillaga Ja, in Python 3 bekomme ich auch nur kleine Unterschiede, alle kommen auf 1,25 Sekunden. Ich weiß nicht, warum es so sehr zwischen Python 2 und 3 unterscheidet. Ich kenne nur den Explizit-Basis-10 "Trick" von einigen "Warum ist Float schneller als Int" thread, vielleicht [das] (https: // www. reddit.com/r/Python/comments/2grsb5/why_is_int_slower_than_float_when_converting_a/) und vielleicht finden Sie dort weitere Erklärungen. –
- 1. mysql Leistungsvergleich
- 2. NSUserDefaults Leistungsvergleich
- 3. Leistungsvergleich zwischen Substring vs RegEx wenn Startindex
- 4. Leistungsvergleich zwischen Zend Lucene und Java Lucene
- 5. Allgemeiner Leistungsvergleich zwischen ImmutableList und List?
- 6. Suchen/Finden Leistungsvergleich zwischen Dictionary und Liste von C#
- 7. Drupal vs WordPress Leistungsvergleich
- 8. IIS vs Kestrel Leistungsvergleich
- 9. Spark "Null mit 0" Leistungsvergleich
- 10. Leistungsvergleich: Json vs reines HTML!
- 11. Unterschied zwischen (Typ) und Typ
- 12. Leistungsvergleich einer Vec und einer Boxscheibe
- 13. Leistungsvergleich Fortran, Numpy, Cython und numexpr
- 14. Azure-Tabellenspeicher und Azure Document DB - Leistungsvergleich?
- 15. Unterschied zwischen Wildcard-Typ und beschränktem Typ
- 16. Unterschied zwischen Typ [] und [Typ] in Typoskript
- 17. MVC 6 .NET-Core vs. .NET Framework 4.6 Leistungsvergleich
- 18. Unterschied zwischen OCaml Typ Casting
- 19. Casting zwischen primitiven Typ Zeiger
- 20. Benutzerdefinierte Filter vs Filterfunktion in der Steuerung Leistungsvergleich
- 21. Leistungsvergleich von RDF-Speicher im Vergleich zu herkömmlicher Datenbank
- 22. Leistungsvergleich der Ergebnismenge Extrahieren von Daten mit Index vs Spaltenname
- 23. Neo4j Chiffre {id: 123} oder c.id = 123 Leistungsvergleich
- 24. PostgreSQL - CREATE TABLE AS vs INSERT INTO Leistungsvergleich
- 25. Leistungsvergleich von dnxcore50 vs dnx451? (CoreClr vs .net Framework)
- 26. Unterschied zwischen Typ (Obj) und Obj .__ Klasse__
- 27. Typ Inferenz zwischen Generika mit umgekehrten Einschränkungen
- 28. Unterschied zwischen Typ und Klasse in C++?
- 29. Unterschied zwischen Identity-Link-Typ in activiti
- 30. Differenz zwischen% Typ und Datentyp in Oracle
Wenn die einzelnen Listen nicht sehr lang sind, wird die Karte nicht viel schneller sein. Wie liest du den Dateiinhalt in die einzelnen Listen ein? Auch das Timing der einzelnen Implementierungen würde Ihre Frage beantworten, so dass Sie dies wirklich selbst beantworten können. –
Es gibt kein "für Funktion". Es heißt ein [Listenverständnis] (https://docs.python.org/3.5/tutorial/datastructures.html#list-comprehensions). 'map' und List Comprehensions werden eine ähnliche Performance haben. Wie auch immer, Datei-I/O wird wahrscheinlich der Flaschenhals sein. –
Ich schlage vor, Sie lesen [Was ist schneller?] (Https://ericlippert.com/2012/12/17/performance-rant/) – CoryKramer