Für Python-Programmiermeister geschriebene Datenstruktur

coldplay.xixi
Freigeben: 2020-11-04 17:13:54
nach vorne
1724 Leute haben es durchsucht

In der Spalte „Python-Video-Tutorial“ werden die wichtigsten Punkte vorgestellt, auf die bei der Python-Programmierung geachtet werden muss.

So filtern Sie Daten basierend auf Bedingungen in Listen, Wörterbüchern und MengenFür Python-Programmiermeister geschriebene Datenstruktur

Fall: So filtern Sie Zahlen größer als 0 in den folgenden Listendaten heraus

data = [1, -1, 2, 3, 4, 7]复制代码
Nach dem Login kopieren

Verwenden Sie die Filterfunktion, der erste Parameter ist eine Funktion können Sie auch einen Lambda-Ausdruck wie den folgenden Code übergeben.

list(filter(lambda x: x >= 0, data))复制代码
Nach dem Login kopieren
Eine andere Lösung besteht darin, die Listengenerierung wie folgt zu verwenden. Diese Lösung ist effizienter als die vorherige Lösung.

print([x for x in data if x >= 0])复制代码
Nach dem Login kopieren
Ähnliche Wörterbuchproduktionen können auch in Datenstrukturen wie Wörterbüchern verwendet werden.

from random import randint
d = { x: randint(60, 100) for x in range(1, 21)}
{k:v for k, v in d.items() if v >= 90}复制代码
Nach dem Login kopieren
So benennen Sie jedes Element im Tupel, um die Lesbarkeit des Programms zu verbessern

Plan: Definieren Sie Konstanten und verwenden Sie Konstanten, um Elemente im Tupel zu indizieren, wie zum Beispiel den folgenden Code

stu = ('hao', 18, 'male', '1078244513@qq.com')
NAME = 0AGE = 1SEX = 2print(stu[SEX])复制代码
Nach dem Login kopieren

Plan: Verwenden Sie die Namedtuple-Funktion des Collections-Pakets. Diese Funktion gibt die Definition einer neuen „Klasse“ zurück und wird wie folgt verwendet.

from  collections import  namedtuple
Stu = namedtuple('Stu', ['name', 'age', 'sex', 'email'])# stu = Stu('hao', 18, 'male', '1078244513@qq.com')stu = Stu(name='hao', age=18, sex='male', email='1078244513@qq.com')

print(stu.email)复制代码
Nach dem Login kopieren
So zählen Sie die Häufigkeit des Auftretens von Elementen in einer Sequenz

Frage: Zählen Sie, wie oft jede Zahl in der folgenden Zahlenliste vorkommt

from random import randint
data = [randint(0, 20) for _ in range(30)]复制代码
Nach dem Login kopieren

Plan: Definieren Sie ein Diktat (Wörterbuch) und durchlaufen Sie dann das Array.

c = dict.fromkeys(data, 0)复制代码
Nach dem Login kopieren
Der obige Code generiert ein Wörterbuchobjekt mit unterschiedlichen Datenwerten als Schlüssel und 0 als Wert.

for x in data:
    c[x] += 1复制代码
Nach dem Login kopieren
Lösung: Verwenden Sie die Zählerfunktion im Sammlungspaket

c2 = Counter(data)复制代码
Nach dem Login kopieren
Mit dieser Lösung können Sie auch ganz einfach die ersten paar ermitteln, die am häufigsten angezeigt werden.

c2.most_common(3)复制代码
Nach dem Login kopieren
So sortieren Sie die Elemente im Wörterbuch nach der Größe der Werte im Wörterbuch

Frage: Sortieren Sie die Werte im folgenden Wörterbuch

cj = {x: randint(60, 100) for x in 'xyzabc'}复制代码
Nach dem Login kopieren

Lösung: Der zweite Parameter in der Sortierfunktion Kann in einem Funktionsobjekt übergeben werden. Die Sortierung erfolgt nach dem Rückgabewert der Funktion.

sorted(cj.items(), key=lambda item:item[1])复制代码
Nach dem Login kopieren
Hinweis: Diese Funktion gibt ein neues Wörterbuchobjekt zurück

Wie finde ich schnell den gemeinsamen Schlüssel (Schlüssel) in mehreren Wörterbüchern?

Lassen Sie uns zunächst die Sampling-Funktion „sample“ in Python vorstellen, die sich im Zufallspaket befindet. Dies erfordert einen Sequenztypparameter und eine Zahl und gibt eine zufällig aus der Sequenz entnommene Sequenz zurück. Der folgende Code.

from random import sample
sample('abcdefg', 3)复制代码
Nach dem Login kopieren

Frage: Wie bekomme ich die gemeinsamen Schlüssel der folgenden drei Sammlungen?

s1 = {x : randint(1, 4) for x in sample('abcdefg', randint(3, 6))}
s2 = {x : randint(1, 4) for x in sample('abcdefg', randint(3, 6))}
s3 = {x : randint(1, 4) for x in sample('abcdefg', andint(3, 6))}复制代码
Nach dem Login kopieren
Diese Aufgabe kann mithilfe der Schnittoperation von Mengen gelöst werden.

s1.keys() & s2.keys() & s3.keys()复制代码
Nach dem Login kopieren
Wie halte ich ein Wörterbuch in Ordnung?

Der OrderedDict-Typ des Sammlungspakets behält die Reihenfolge der Eingabe des Wörterbuchs bei.

Verwandte kostenlose Lernempfehlungen:

Python-Video-Tutorial

Das obige ist der detaillierte Inhalt vonFür Python-Programmiermeister geschriebene Datenstruktur. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:juejin.im
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