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.

王林
Lepaskan: 2023-04-12 13:43:12
ke hadapan
1257 orang telah melayarinya

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
Salin selepas log masuk

Gabungan senarai

Cara pertama: gunakan +.

>>> a + b
[1, 2, 3, 4, 5, 6]
Salin selepas log masuk

Cara kedua: gunakan kata kunci lanjutan.

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

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]
Salin selepas log masuk

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]
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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})
Salin selepas log masuk

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}
Salin selepas log masuk

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()
Salin selepas log masuk

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))
Salin selepas log masuk

Penggabungan kamus

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

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

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')
Salin selepas log masuk

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)
Salin selepas log masuk

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
Salin selepas log masuk

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}
Salin selepas log masuk

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])
Salin selepas log masuk

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)
Salin selepas log masuk

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!

Label berkaitan:
sumber:51cto.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan