Heim  >  Artikel  >  Backend-Entwicklung  >  Eine kurze Einführung in das Collection-Modul in Python (mit Beispielen)

Eine kurze Einführung in das Collection-Modul in Python (mit Beispielen)

不言
不言Original
2018-09-25 16:52:513068Durchsuche

Dieser Artikel bietet Ihnen eine kurze Einführung in das Sammlungsmodul in Python (mit Beispielen). Ich hoffe, dass er für Freunde hilfreich ist.

Sammlungsmodul:

Basierend auf den integrierten Datentypen (Dikt, Liste, Menge, Tupel) stellt das Sammlungsmodul auch mehrere zusätzliche Datentypen bereit: Counter, Deque, Defaultdict, NamedTuple und OrderedDict usw.

1:namedtuple

Generiert ein Tupel, das über den Namen auf den Inhalt des Elements zugreifen kann
Zum Beispiel: Stellt eine Koordinate dar

from collections import namedtuple
point = namedtuple('point',['x','y'])
p=point(1,2)
print(p.x)
print(p.y)
rrree

2 :deque Doppelendige Warteschlange:

Doppelendige Warteschlange kann schnell Objekte von der anderen Seite hinzufügen und verschieben.
Wenn Sie eine Liste zum Speichern von Daten verwenden, ist der Zugriff auf Elemente über den Index schnell, das Einfügen und Löschen von Elementen ist jedoch sehr langsam, da es sich bei der Liste um einen linearen Speicher handelt, und wenn die Datenmenge groß ist, ist die Effizienz beim Einfügen und Löschen sehr hoch niedrig

deque ist eine Zwei-Wege-Liste zur effizienten Implementierung von Einfüge- und Löschvorgängen, geeignet für Warteschlangen und Stapel

>>1
>>2
from collections import deque
q=deque(['a','b','c'])
q.append('x')
q.appendleft('y')
print(q)

3: Zählerzähler

Zähler, hauptsächlich verwendet für Zählung
Der Zweck besteht darin, die Häufigkeit zu verfolgen, mit der ein Wert ausgegeben wird. Es handelt sich um einen ungeordneten Containertyp, der in Form von Schlüssel-Wert-Paaren eines Wörterbuchs gespeichert wird, wobei das Element als Schlüssel verwendet wird und seine Anzahl beträgt als Wert verwendet
Der Zählwert kann eine beliebige ganze Zahl sein (einschließlich 0 und negative Zahlen),

Erstellen:

>>deque(['y', 'a', 'b', 'c', 'x'])

Zählwertzugriff mit fehlendem Schlüssel
Wann Der Schlüssel, auf den zugegriffen wurde, existiert nicht. Geben Sie 0 anstelle von KeyError zurück. Andernfalls geben Sie dessen Anzahl zurück iterierbares Objekt oder ein anderes Zählerobjekt zum Aktualisieren von Schlüssel-Wert-Paaren

Erhöhungen aktualisieren

from collections import Counter
#创建一个空的类
c=Counter()
#从一个可迭代对象中创建
c=Counter('gallahad')
#从一个字典对象创建
c=Counter({'a':2,'b':4})
#从一组键值对创建
c=Counter(a=2,b=4)

Abnahmen subtrahieren

c=Counter('gallahad')
print(c['a'])
print(c['z'])
>>3
>>0

Schlüsseländerung und -löschung
Wann Der Zählwert ist 0, das bedeutet nicht, dass das Element gelöscht wurde, verwenden Sie del

c=Counter('gallahad')
c.update('chengzheng')
print(c['e'])
>>2
d=Counter('holloword')
c.update(d)
print(c['l'])
>>4

elements():

, um einen Iterator zurückzugeben. Die Häufigkeit, mit der ein Element wiederholt wird, gibt an, wie oft das Element im Iterator enthalten ist. Die Elemente sind in keiner bestimmten Reihenfolge angeordnet und Elemente mit einer Zahl kleiner als 1 werden nicht berücksichtigt.

c=Counter('gallahad')
c.subtract('g')
print(c['g'])
>>0
d=Counter('all')
c.subtract(d)
print(c['l'])
>>0

most_common():
Gibt eine Top(n)-Liste zurück. Wenn n nicht angegeben ist, werden alle Elemente zurückgegeben. Wenn mehrere Elemente den gleichen Zählwert haben, ist die Anordnung ungeordnet

c=Counter('gallahad')
print(c)
c['a']=0
print(c)
del c['l']
print(c)
>>Counter({'a': 3, 'l': 2, 'g': 1, 'h': 1, 'd': 1})
>>Counter({'l': 2, 'g': 1, 'h': 1, 'd': 1, 'a': 0})
>>Counter({'g': 1, 'h': 1, 'd': 1, 'a': 0})

Andere Operationen:

c =Counter(a=4,b=2,c=0,d=-2)
a =list(c.elements())
print(a)
>>['a', 'a', 'a', 'a', 'b', 'b']

4:OrderdDict ist ein geordnetes Wörterbuch

verwendet ein Wörterbuch (Dikt) und die Schlüssel sind ungeordnet. Beim Durchlaufen des Wörterbuchs können wir die Reihenfolge der Schlüssel nicht bestimmen.

Wenn Sie möchten, dass die Schlüssel in Ordnung sind, können Sie OrderdDict verwenden

OrderedDict aus Sammlungen importieren

c =Counter('xsgffikgkhgdyrduykkf')
a =c.most_common(3)
print(a)


Hinweis: OrderdDict wird in der Reihenfolge der Einfügung sortiert , nicht nach Schlüssel. Sortiert nach sich selbst.

sum(c.values())  # 所有计数的总数
c.clear()  # 重置Counter对象,注意不是删除
list(c)  # 将c中的键转为列表
set(c)  # 将c中的键转为set
dict(c)  # 将c中的键值对转为字典
c.items()  # 转为(elem, cnt)格式的列表
Counter(dict(list_of_pairs))  # 从(elem, cnt)格式的列表转换为Counter类对象
c.most_common()[:-n:-1]  # 取出计数最少的n个元素
c += Counter()  # 移除0和负值

5:defaultdict: Wörterbuch mit Standardwerten

Beispiel:
hat den folgenden Wertsatz [11,22,33,44,55,66,77 , 88,99,90...], speichern Sie alle Werte größer als 66 im ersten Schlüssel des Wörterbuchs und speichern Sie Werte kleiner als 66 im Wert des zweiten Schlüssels.

Das heißt: {'k1': größer als 66, 'k2': kleiner als 66}

aus Sammlungen importieren defaultdict

d=dict([('a',1),('b',2),('c',3)])
print(d)
od=OrderedDict([('a',1),('b',2),('c',3)])
print(od)
>>{'c': 3, 'b': 2, 'a': 1}
>>OrderedDict([('a', 1), ('b', 2), ('c', 3)])
od=OrderedDict([('a',1),('c',3),('b',2)])
print(od)
>>OrderedDict([('a', 1), ('c', 3), ('b', 2)])

Das obige ist der detaillierte Inhalt vonEine kurze Einführung in das Collection-Modul in Python (mit Beispielen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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