Rumah >pembangunan bahagian belakang >Tutorial Python >Kod Python yang saya tulis telah dipuji oleh rakan sekerja saya.

Kod Python yang saya tulis telah dipuji oleh rakan sekerja saya.

王林
王林ke hadapan
2023-04-12 13:43:121250semak imbas

Hidup ini singkat, saya menggunakan Python.

Tujuan pengaturcara adalah untuk mencapai kebebasan kewangan secepat mungkin tanpa menulis kod. Tidak, saya secara tidak sengaja memberitahu kebenaran saya sepatutnya menulis kod itu dengan ringkas dan elegan.

Pengejaran pengaturcara Python adalah Pythonic Ia berlaku bahawa dalam bahasa Python, terdapat banyak kaedah "tersembunyi" yang boleh menjadikan kod itu ringkas, elegan dan unik.

Saya telah meringkaskan beberapa operasi biasa di sini, terutamanya mengenai senarai dan kamus, untuk dikongsi dengan anda.

Huruf besar huruf pertama

Kaedah ini agak menarik, saya menemuinya secara tidak sengaja.

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

Gabungan senarai

Cara pertama: gunakan +.

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

Cara kedua: gunakan kata kunci lanjutan.

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

Dua kaedah terakhir ini jelas lebih elegan dan disyorkan. Satu perkara yang perlu diambil perhatian ialah jika senarai itu besar, + akan menjadi lebih perlahan dan memanjangkan akan menjadi lebih baik.

Deduplikasi elemen senarai

Gunakan set() untuk menyahduplikasi elemen senarai.

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

Isih senarai

Gunakan sort() atau fungsi terbina dalam sorted() untuk mengisih senarai. Terdapat dua perbezaan antara mereka:

  • Kaedah sort() beroperasi pada senarai asal, manakala kaedah sorted() mengembalikan senarai baharu, dan bukannya beroperasi pada senarai asal.
  • sort() ialah kaedah yang digunakan pada senarai, manakala sorted() boleh mengisih semua objek boleh lelaran.
# 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]

Lintas pasangan indeks dan elemen senarai

Gunakan fungsi enumerate() untuk mengeluarkan kedua-dua indeks dan nilai elemen.

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

# output
0 python
1 go
2 java

Cari elemen yang paling kerap berlaku dalam senarai

Gunakan fungsi max() untuk mencari elemen yang paling kerap berlaku dalam senarai dengan cepat.

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

Satu perkara yang perlu diambil perhatian ialah apabila terdapat dua elemen dalam senarai yang muncul bilangan kali yang sama, elemen pertama yang muncul akan dikembalikan.

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

Kira kejadian semua elemen dalam senarai

Kod sebelumnya memberikan nilai yang paling kerap berlaku. Jika anda ingin mengetahui bilangan kejadian semua elemen dalam senarai, anda boleh menggunakan modul koleksi.

koleksi ialah modul khazanah dalam Python yang menyediakan banyak ciri. Kaedah Kaunter boleh menyelesaikan keperluan ini dengan sempurna.

>>> 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})

Gabungkan dua senarai ke dalam kamus

Menggunakan fungsi zip(), anda boleh menggabungkan dua senarai ke dalam kamus.

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

Cari persimpangan, kesatuan dan perbezaan dua senarai.

# 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()

Penciptaan kamus

# 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))

Penggabungan kamus

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

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

Tentukan sama ada kunci wujud

Tentukan sama ada kunci wujud dalam Python2 , anda boleh menggunakan has_key, tetapi kaedah ini telah dialih keluar dalam Python3.

Kaedah lain ialah menggunakan kata kunci dalam, yang bukan sahaja serasi dengan Python2 dan Python3, tetapi juga lebih pantas dan sangat disyorkan.

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

Dapatkan nilai dalam kamus

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

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

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

Melintasi kamus

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

Kefahaman kamus

Senaraikan pemahaman dan pemahaman kamus Ini ialah fungsi yang saya cukup suka, ia mudah dan cekap. Saya hampir tidak boleh menggunakan peta dan penapis lagi.

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

Kamus diisih mengikut kunci atau nilai

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

Ada satu lagi keperluan yang sering saya hadapi semasa proses pembangunan, iaitu mempunyai senarai, dan unsur-unsur senarai ialah kamus, dan kemudian Isih senarai mengikut nilai kamus.

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)

Atas ialah kandungan terperinci Kod Python yang saya tulis telah dipuji oleh rakan sekerja saya.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam