Heim >Backend-Entwicklung >Python-Tutorial >Der von mir geschriebene Python-Code wurde von meinen Kollegen gelobt.

Der von mir geschriebene Python-Code wurde von meinen Kollegen gelobt.

王林
王林nach vorne
2023-04-12 13:43:121250Durchsuche

Das Leben ist kurz, ich benutze Python.

Das Streben von Programmierern besteht darin, so schnell wie möglich finanzielle Freiheit zu erlangen, ohne Code schreiben zu müssen. Nein, ich habe aus Versehen die Wahrheit gesagt, ich hätte den Code prägnant und elegant schreiben sollen.

Das Streben der Python-Programmierer ist Pythonic. Es kommt vor, dass es in der Sprache von Python viele „versteckte“ Methoden gibt, die den Code prägnant, elegant und einzigartig machen können.

Ich habe hier einige gängige Vorgänge, insbesondere zu Listen und Wörterbüchern, zusammengefasst, um sie mit Ihnen zu teilen.

Der erste Buchstabe wird groß geschrieben

Diese Methode ist etwas interessant, ich habe sie zufällig entdeckt.

>>> s = "programming is awesome"
>>> print(s.title())
Programming Is Awesome

Listenzusammenführung

Der erste Weg: Verwenden Sie +.

>>> a + b
[1, 2, 3, 4, 5, 6]

Der zweite Weg: Verwenden Sie das Schlüsselwort „extend“.

>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]

Die beiden letztgenannten Methoden sind offensichtlich eleganter und werden empfohlen. Zu beachten ist, dass + langsamer und die Erweiterung besser ist, wenn die Liste groß ist.

Deduplizierung von Listenelementen

Verwenden Sie set(), um Listenelemente zu deduplizieren.

>>> a = [1, 2, 3, 4, 2, 3]
>>> list(set(a))
[1, 2, 3, 4]

Listensortierung

Verwenden Sie sort() oder die integrierte Funktion sorted(), um die Liste zu sortieren. Es gibt zwei Unterschiede zwischen ihnen:

  • Die sort()-Methode arbeitet mit der ursprünglichen Liste, während die sorted()-Methode eine neue Liste zurückgibt, die nicht auf der ursprünglichen Liste basiert.
  • sort() ist eine Methode, die auf Listen angewendet wird, während sorted() alle iterierbaren Objekte sortieren kann.
# sort()
>>> a = [1, 2, 3, 4, 2, 3]
>>> a.sort()
>>> a
[1, 2, 2, 3, 3, 4]
>>>
>>> a = [1, 2, 3, 4, 2, 3]
>>> a.sort(reverse=True)
>>> a
[4, 3, 3, 2, 2, 1]

# sorted()
>>> a = [1, 2, 3, 4, 2, 3]
>>> sorted(a)
[1, 2, 2, 3, 3, 4]
>>> a = [1, 2, 3, 4, 2, 3]
>>> sorted(a, reverse=True)
[4, 3, 3, 2, 2, 1]

Durchlaufen Sie die Index- und Elementpaare der Liste

Verwenden Sie die Funktion enumerate(), um sowohl den Index als auch den Elementwert auszugeben.

>>> a = ['python', 'go', 'java']
>>> for i, v in enumerate(a):
... print(i, v)

# output
0 python
1 go
2 java

Finden Sie das am häufigsten vorkommende Element in einer Liste

Verwenden Sie die Funktion max(), um schnell das am häufigsten vorkommende Element in einer Liste zu finden.

>>> a = [1, 2, 3, 4, 3, 4, 5, 4, 4, 2]
>>> b = max(set(a), key=a.count)
>>> b
4

Eine Sache ist zu beachten: Wenn zwei Elemente gleich oft in der Liste vorkommen, wird das erste Element zurückgegeben, das erscheint.

>>> a = [1, 2]
>>> b = max(set(a), key=a.count)
>>> b
1

Zähle die Anzahl der Vorkommen aller Elemente in der Liste

Der vorherige Code gibt den am häufigsten vorkommenden Wert an. Wenn Sie wissen möchten, wie oft alle Elemente in einer Liste vorkommen, können Sie das Modul „Collections“ verwenden.

collections ist ein Treasure-Modul in Python, das viele Funktionen bietet. Die Counter-Methode kann diese Anforderung perfekt lösen.

>>> from collections import Counter
>>>
>>> a = [1, 2, 3, 4, 3, 4, 5, 4, 4, 2]
>>> Counter(a)
Counter({4: 4, 2: 2, 3: 2, 1: 1, 5: 1})

Zwei Listen zu einem Wörterbuch zusammenführen

Mit der Funktion zip() können Sie zwei Listen zu einem Wörterbuch zusammenführen.

>>> a = ['one', 'tow', 'three']
>>> b = [1, 2, 3]
>>> dict(zip(a, b))
{'one': 1, 'tow': 2, 'three': 3}

Finden Sie den Schnittpunkt, die Vereinigung und die Differenz zweier Listen.

# list_operate.py

def main():
list_a = [1, 2, 3, 4, 5]
list_b = [4, 5, 6, 7, 8]

# 求交集的两种方式
res_a = [i for i in list_a if i in list_b]
res_b = list(set(list_a).intersection(set(list_b)))

print(f"res_a is: {res_a}")
print(f"res_b is: {res_b}")

# 求并集
res_c = list(set(list_a).union(set(list_b)))
print(f"res_c is: {res_c}")

# 求差集的两种方式,在B中但不在A中
res_d = [i for i in list_b if i not in list_a]
res_e = list(set(list_b).difference(set(list_a)))

print(f"res_d is: {res_d}")
print(f"res_e is: {res_e}")


if __name__ == '__main__':
main()

Wörterbucherstellung

# 1、创建空字典
a = {}
b = dict()

# 2、有初始值,从输入的便利程度来说,我更喜欢第二种
a = {'a': 1, 'b': 2, 'c': 3}
b = dict(a=1, b=2, c=3)

# 3、key 来自一个列表,而 value 相同, 使用 fromkeys,那是相当的优雅
keys = ['a', 'b', 'c']
value = 100
d = dict.fromkeys(keys, value)

# 4、key 来自一个列表,而 value 也是一个列表,使用 zip
keys = ['a', 'b', 'c']
values = [1, 2, 3]
d = dict(zip(keys, values))

Wörterbuchzusammenführung

m = {'a': 1}
n = {'b': 2, 'c': 3}

# 合并,两种方式
# 1、使用 update
m.update(n)
# 2、使用 **
{**m, **n}

Beurteilen Sie, ob der Schlüssel vorhanden ist

Beurteilen Sie einen Schlüssel in Python2 If es existiert, Sie können has_key verwenden, aber diese Methode wurde in Python3 entfernt.

Eine andere Methode ist die Verwendung des Schlüsselworts in, das nicht nur mit Python2 und Python3 kompatibel, sondern auch schneller und sehr zu empfehlen ist.

d = {'a': 1, 'b': 2}
if 'a' in d:
print('hello')

Den Wert im Wörterbuch abrufen

d = {'a': 1, 'b': 2}

# 1、直接用 key 取值,但这种方式不好,如果 key 不存在会报错,推荐使用 get
a = d['a']

# 2、使用 get,如果 key 不存在还可以赋默认值
a = d.get('a')
c = d.get('c', 3)

Wörterbuchdurchlauf

d = {'a': 1, 'b': 2, 'c': 3}

# 遍历 key
for key in d.keys():
pass

# 遍历 value
for value in d.values():
pass

# 遍历 key 和 value
for key, value in d.items():
pass

Wörterbuchverständnis

Listenverständnis und Wörterbuchableitung ist eine Funktion, die mir sehr gefällt, sie ist einfach und effizient. Ich kann Karte und Filter kaum noch verwenden.

l = [1, 2, 3]
{n: n * n for n in l}
{1: 1, 2: 4, 3: 9}

Wörterbücher werden nach Schlüssel oder Wert sortiert

d = {'a': 1, 'b': 2, 'e': 9, 'c': 5, 'd': 7}

# 按 key 排序
sorted(d.items(), key=lambda t: t[0])
# 按 key 倒序
sorted(d.items(), key=lambda t: t[0], reverse=True)

# 按 value 排序
sorted(d.items(), key=lambda t: t[1])

Es gibt eine weitere Anforderung, auf die ich während des Entwicklungsprozesses häufig stoße, nämlich eine Liste und die Elemente davon zu haben Liste sind Wörterbücher, und dann sortieren Sie die Liste nach Wörterbuchwert.

l = [{'name': 'a', 'count': 4}, {'name': 'b', 'count': 1}, {'name': 'd', 'count': 2}, {'name': 'c', 'count': 6}]
sorted(l, key=lambda e: e.__getitem__('count'))
# 倒序
sorted(l, key=lambda e: e.__getitem__('count'), reverse=True)

Das obige ist der detaillierte Inhalt vonDer von mir geschriebene Python-Code wurde von meinen Kollegen gelobt.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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