Heim > Backend-Entwicklung > Python-Tutorial > Python-Wörterbuch: Gibt es ein fortgeschrittenes Gameplay, von dem ich nicht weiß, wie man es macht?

Python-Wörterbuch: Gibt es ein fortgeschrittenes Gameplay, von dem ich nicht weiß, wie man es macht?

WBOY
Freigeben: 2023-04-11 23:58:08
nach vorne
1607 Leute haben es durchsucht

Python-Wörterbuch: Gibt es ein fortgeschrittenes Gameplay, von dem ich nicht weiß, wie man es macht?


Wörterbuch aus Sequenz generieren

Wir konvertieren die folgende Sequenz in den Diktattyp.

lst = [('a', 1), ('b', 2), ('c', 3)]
Nach dem Login kopieren

Gemeinsame Schreibmethode

for k, v in lst:
dic[k] = v
Nach dem Login kopieren

Mehr pythonische Schreibmethode

Verwenden Sie die Wörterbuchableitung, um schnell ein Wörterbuch zu erstellen.

{k: v for k, v in lst}
Nach dem Login kopieren

Standardwert des Schlüssels

Wenn der angegebene Schlüssel nicht existiert, setzen Sie den Wert auf 0.

Übliche Schreibweise

if key not in dct:
dct[key] = 0
Nach dem Login kopieren

Pythonische Schreibweise

dct[key] = dct.get(key, 0)
Nach dem Login kopieren

Schlüssel und Wert austauschen

Gewöhnliche Schreibweise

dic = {'Python': 1, 'Java': 2}
new_dic = {}
for k, v in dic.items():
new_dic[v] = k
Nach dem Login kopieren

Mehr pythonische Schreibweise

dic = {'Python': 1, 'Java': 2}
new_dic = {v: k for k, v in dic.items()}

Nach dem Login kopieren

Sequenzänderung und Initialisierung

Beispieldaten

lst = [('a', 1), ('b', 2), ('c', 3)]
dic = {'a': [0]}
Nach dem Login kopieren

Wenn wir Sie müssen dies basierend auf lst tun. Aktualisieren Sie die Daten in dic. Wenn der Schlüssel vorhanden ist, fügen Sie den Wert am Ende der ursprünglichen Sequenz hinzu. Andernfalls initialisieren Sie ihn und speichern Sie ihn mit der Sequenz.

Normale Schreibmethode

for key, value in lst:
if key in dic:
dic[key].append(value)
else:
dic[key] = [value]
Nach dem Login kopieren

Mehr pythonische Schreibmethode

for (key, value) in lst:
group = dic.setdefault(key, [])
group.append(value)
# dic:{'a': [0, 1], 'b': [2], 'c': [3]}
Nach dem Login kopieren

setdefault(key, default) ermittelt zunächst, ob der Schlüssel existiert, und gibt dct[key] zurück dct[key] zu [] und return .

Schlüssel, Set-Operation von Elementen

Wenn wir nun die Zuordnungsinformationen der Schnittmenge der Schlüssel zweier Wörterbücher erhalten müssen.

Allgemeine Schreibmethode

dic1 = {'Python': 1, 'Java': 2, 'C': 3}
dic2 = {'Python': 3, 'Java': 2, 'C++': 1}
new_dic = {}
for k, v in dic1.items():
if k in dic2.keys():
new_dic[k] = v
print(new_dic)
# {'Python': 1, 'Java': 2}
Nach dem Login kopieren

Mehr pythonische Schreibmethode

dic1 = {'Python': 1, 'Java': 2, 'C': 3}
dic2 = {'Python': 3, 'Java': 2, 'C++': 1}
print({k: dic1[k] for k in dic1.keys() & dic2.keys()})
# {'Python': 1, 'Java': 2}
Nach dem Login kopieren

Hier verwenden dic1.keys() und dic2.keys()keys(), um Set-Operationen auszuführen, und items() können auch Set-Operationen ausführen.

Wenn wir jetzt die gleichen Schlüssel- und Wertteile in zwei Wörterbüchern erhalten möchten

dic1 = {'Python': 1, 'Java': 2, 'C': 3}
dic2 = {'Python': 3, 'Java': 2, 'C++': 1}
print(dic1.items() & dic2.items())
# {('Java', 2)}
Nach dem Login kopieren

nutzen Sie flexibel die Funktionen von Schlüssel- und Item()-Set-Operationen, um schnell den gewünschten Inhalt zu extrahieren.

Sortieren Sie das Wörterbuch nach Schlüssel oder Wert.

Verwenden Sie die Funktion sorted(), um den Schlüssel oder Wert schnell zu sortieren.

dic = {'a': 2, 'b': 1, 'c': 3, 'd': 0}
lst1 = sorted(dic.items(), key=lambda x: x[0], reverse=False)
# [('a', 2), ('b', 1), ('c', 3), ('d', 0)]
lst2 = sorted(dic.items(), key=lambda x: x[1], reverse=False)
# [('d', 0), ('b', 1), ('a', 2), ('c', 3)]
print('按照键降序:', {key: value for key, value in lst1})
print('按照值降序:', {key: value for key, value in lst2})
# 按照键降序: {'a': 2, 'b': 1, 'c': 3, 'd': 0}
# 按照值降序: {'d': 0, 'b': 1, 'a': 2, 'c': 3}
Nach dem Login kopieren

Mehrere Wörterbuchsortierung

Wenn eine Sequenz mehrere Wörterbücher enthält, müssen diese Wörterbücher nun nach Bedingungen sortiert werden. Dies kann auch mit der Funktion sorted() erreicht werden.

dict_list = [
{'letter': 'B', 'number': '2'},
{'letter': 'A', 'number': '3'},
{'letter': 'B', 'number': '1'}
]
# 按 letter 排序
print(sorted(dict_list,
 key=lambda dic: dic['letter']))
# 按 letter, number 排序
print(sorted(dict_list,
 key=lambda dic: (dic['letter'], dic['number'])))
# [{'letter': 'A', 'number': '3'}, {'letter': 'B', 'number': '2'}, {'letter': 'B', 'number': '1'}]
# [{'letter': 'A', 'number': '3'}, {'letter': 'B', 'number': '1'}, {'letter': 'B', 'number': '2'}]
Nach dem Login kopieren

Wenn Sie itemgetter() kennen, kann der obige Code natürlich geändert werden und die Ausführungsgeschwindigkeit wird schneller.

from operator import itemgetter
print(sorted(dict_list
 key=itemgetter('letter')))
print(sorted(dict_list,
 key=itemgetter('letter', 'number')))
Nach dem Login kopieren

itemgetter() ruft den Wert nicht ab, sondern definiert eine Funktion, über die er auf das Zielobjekt angewendet wird.

Das obige ist der detaillierte Inhalt vonPython-Wörterbuch: Gibt es ein fortgeschrittenes Gameplay, von dem ich nicht weiß, wie man es macht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:51cto.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