Heim > Backend-Entwicklung > Python-Tutorial > Einführung und Analyse der Python-Methode zum gleichzeitigen Konvertieren und Konvertieren von Daten (mit Beispielen)

Einführung und Analyse der Python-Methode zum gleichzeitigen Konvertieren und Konvertieren von Daten (mit Beispielen)

不言
Freigeben: 2018-11-26 16:36:10
nach vorne
1999 Leute haben es durchsucht

Dieser Artikel bietet Ihnen eine Einführung und Analyse der Python-Methode zum gleichzeitigen Konvertieren und Konvertieren von Daten (mit Beispielen). Sie hat einen gewissen Referenzwert und Freunde in Not können sich darauf beziehen . Ich hoffe, es hilft dir.

1. Anforderungen

Wir müssen eine Konvertierungsfunktion aufrufen (z. B. sum(), min(), max()), aber zuerst müssen wir konvertieren Daten oder Filter

2. Lösung

Es gibt eine sehr elegante Lösung, die Datenkonvertierung und -konvertierung kombiniert: die Verwendung von Generatorausdrücken in Funktionsparametern.

Beispiel 1: Berechnen Sie die Summe der Quadrate:

nums=[1,2,3]
s=sum(x*x for x in nums)
print(s)
Nach dem Login kopieren

Ergebnis:

14
Nach dem Login kopieren

Beispiel 2: Bestimmen Sie, ob die .py-Datei im angegebenen Verzeichnis

import os
filename=os.path.dirname(os.path.abspath(__file__))
files1=os.listdir(filename+"/image")
files2=os.listdir(filename)
#any表示该iterable只要存在一个满足条件的,欧返回True,否则才返回False
if any(name.endswith('.py') for name in files1):
    print('存在py文件')
else:
    print('不存在py文件')
#any表示该iterable只要存在一个满足条件的,欧返回True,否则才返回False
if any(name.endswith('.py') for name in files2):
    print('存在py文件')
else:
    print('不存在py文件')
Nach dem Login kopieren
Ergebnis ausführen:

不存在py文件
存在py文件
Nach dem Login kopieren
Beispiel 3: Den Mindestwert basierend auf einem Schlüssel im Wörterbuch ermitteln

marks=[
    {'age':18,'money':100},
    {'age':19,'money':500},
    {'age':17,'money':900},
    {'age':20,'money':1000},
]
min_mark=min(m['age'] for m in marks)
print(min_mark)
Nach dem Login kopieren
Ergebnis:

17
Nach dem Login kopieren

3. Analyse

This Diese Lösung demonstriert einige der syntaktischen Feinheiten bei der Übergabe eines Generatorausdrucks als separates Argument an eine Funktion (z. B. keine Wiederverwendung von Symbolen). Beispielsweise bedeuten die folgenden beiden Codezeilen dasselbe:

s=sum((x*x for x in nums))
s=sum(x*x for x in nums)
Nach dem Login kopieren
Im Vergleich zum ersten Erstellen einer temporären Tabelle ist die Verwendung eines Generators als Parameter normalerweise effizienter und eleganter. Wenn Sie beispielsweise keinen Generatorausdruck verwenden, ziehen Sie die folgende Methode in Betracht, um die Summe der Quadrate zu berechnen:

nums=[1,2,3]
s=sum([x*x for x in nums])
print(s)
Nach dem Login kopieren
Dies funktioniert auch, erfordert jedoch einen zusätzlichen Schritt und erstellt eine zusätzliche Liste. Für eine kleine Liste. Es spielt keine Rolle, aber wenn nums sehr groß ist, wird eine riesige temporäre Datenstruktur erstellt, die nur einmal verwendet und dann verworfen wird.

Generatorbasierte Lösungen können Daten iterativ transformieren und sind daher wesentlich effizienter in der Speichernutzung.

Bestimmte Konvertierungsfunktionen wie min() und max() können einen Schlüsselparameter akzeptieren, was hilfreich ist, wenn Sie möglicherweise lieber einen Generator verwenden möchten. Im obigen Beispiel [den Mindestwert basierend auf einem Schlüssel im Wörterbuch nehmen] können Sie beispielsweise die folgende Alternative in Betracht ziehen:

min_mark=min(marks,key=lambda m:m['age'])
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonEinführung und Analyse der Python-Methode zum gleichzeitigen Konvertieren und Konvertieren von Daten (mit Beispielen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage