Heim  >  Artikel  >  Backend-Entwicklung  >  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)

不言
不言nach vorne
2018-11-26 16:35:361940Durchsuche

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)

Ergebnis:

14

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文件')
Ergebnis ausführen:

不存在py文件
存在py文件
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)
Ergebnis:

17

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)
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)
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'])

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen