Nota / helah / pelajaran / nuansa Python

WBOY
Lepaskan: 2024-09-03 11:00:36
asal
704 orang telah melayarinya

Python notes/tricks/lessons/nuances

Saya membuat siaran helah C++ dan saya ingin menulis tentang lebih banyak helah yang saya tahu, kerana kebanyakannya adalah dalam Python dan JS walaupun saya telah mengekodkan dalam C++ a banyak lagi tetapi bagaimanapun di sini, saya akan mulakan dengan perkara remeh tentang sintaks Python asas tetapi terdapat beberapa perkara yang tidak diketahui oleh pemula, yang saya telah tandakan dengan bintang ⭐️:

1. Senarai

  • Kumpulan struktur data item yang tersusun
  • Boleh mempunyai pelbagai jenis
  • aa = ["epal", 'd', 3, 9.3]

Permulaan:

  1. a = [1, 2]
  2. a = senarai()
  3. a = senarai([2, 3])
  4. [0]*5
  5. concat_list = senarai1 + senarai2

Mengakses elemen ⭐️

  • 0 ... n-1 dan -n ... -1

Fungsi

  • len(senarai1)
  • a.tambah(nilai)
  • a.insert(index, value): memasukkan nilai pada indeks dan menolak semuanya ke kanan
  • a.pop(): mengembalikan nilai akhir dan mengalih keluarnya
  • a.remove(value): jika nilai tidak ada, anda akan mendapat ValueError
  • a.clear()
  • a.reverse(): terbalik di tempat
  • a.sort(): mengubah suai asli
  • b = sorted(a): tidak mengubah suai asal

Menghiris ⭐️

Cara mudah untuk mengakses subarray senarai

  • slicedList = a[1:5]: bermula pada indeks 1 dan berhenti pada indeks 5, indeks 5 dikecualikan
  • slicedList = a[:3]: daripada 0 ... 2
  • slicedList = a[1:3]: dari 1 hingga 2
  • slicedList = a[:]: pendua keseluruhan senarai
  • slicedList = myList[::2]: indeks langkah, setiap item kedua, mulakan dengan yang pertama, pada asasnya i=0;i
  • slicedList = myList[::-1]: cara yang bagus untuk membalikkan senarai

Menyalin senarai

1. Naskhah cetek

  • a = [1, 2, 3]
  • b = a

Mengubah suai satu juga mengubah suai yang lain kerana kedua-duanya adalah peruntukan memori yang sama

2. Deep Copy ⭐️

3 cara:

  1. b = a.copy()
  2. b = senarai(a)
  3. b = a[:]

Kefahaman Senarai

Saya akan mulakan dengan beberapa pemahaman senarai asas, tetapi dengan cepat ia akan menjadi kurang penting.

  • nilai = [x+1 untuk x dalam julat(10)] -> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

- nilai = [x untuk x dalam julat(51) jika x % 2 == 0]

values = [word for word in values if len(word) > 1 and word[0] == 'a' and word[-1] == 'y']
# OR, a nicer way is ⭐️
values = [
    string
    for string in values
    if len(string) > 1
    if string[0] == 'a'
    if string[-1] == 'y'
]

Salin selepas log masuk

Pemahaman Senarai Bersarang ⭐️

Meratakan senarai senarai atau matriks 2D
Pemahaman senarai bersarang: Meratakan matriks (senarai senarai) ⭐️

Contoh: matriks = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

values = [
    number for row in matrix for number in row
]
# first for loop then the next for loop is inside the first and so on
Salin selepas log masuk
  • Kefahaman senarai lain:
values = [
    "Even" if x % 2 == 0 
    else "Odd" 
    for x in range(10)
]
Salin selepas log masuk
  • Sintaks ini ->
    "Walaupun" jika x % 2 == 0 lain "Ganjil" sah di banyak tempat dalam ular sawa, anda juga boleh meletakkannya dalam pembolehubah, ini pada asasnya pengendali ternary tetapi lebih bertele-tele

  • ⭐️ Untuk memahami mana-mana pemahaman senarai sentiasa lihat di sebelah kiri dan sebelah kanan ungkapan, mana-mana gelung bersarang pergi dari kiri ke kanan, apabila if else berada di sebelah kiri gelung for kami menyemak nilai apa adakah kita mahu memasukkan bergantung pada keadaan if else, sedangkan apabila gelung for berada di sebelah kanan kita cuba menapis daripada senarai

  • Contohnya untuk membuat senarai 5x5x5: ⭐️

values = [[[num+1 for num in range(5)] for _ in range(5)] for _ in range(5)]
Salin selepas log masuk

⭐️ Cari bahagian luar yang paling banyak untuk gelung, apa sahaja yang berada di sebelah kirinya akan ditambahkan pada tatasusunan nilai[], dan maksud sintaks ini: untuk _ dalam julat(5) ialah saya mahu melakukan apa sahaja yang ada. kiri ini untuk gelung 5 kali (kerana saya tidak peduli dengan nilai pembolehubah lelaran pada setiap lelaran)

  • Fungsi dalam pemahaman: nilai = [x**2 untuk x dalam nilai jika sah(x)]

Pemahaman kamus

Jika kita mempunyai pasangan = [("a", 1), ("b", 2)]: senarai pasangan atau tupel

-> my_dict = {k:v untuk k, v secara berpasangan}: pembongkaran nilai, untuk ini berfungsi, setiap "pasangan" dalam pasangan mesti mempunyai tepat 2 entiti

Tetapkan kefahaman

Biar nombor = [1, 2, 3, 1, 3, 2, 4, 2, 1, 3]

unique_nums = {x untuk x dalam nombor}: python akan tahu bahawa ini sepatutnya satu set kerana anda tidak mempunyai sebarang kunci

Saya akan menulis ini sebaik sahaja saya mendapat sedikit masa, tetapi anda masih boleh menyemaknya di sini: AdvancedPythonConcepts ini adalah repo git saya di mana saya mendokumentasikan konsep python semasa saya mula-mula mempelajarinya. Saya akan menulis siaran ini berdasarkan repo ini sebaik sahaja saya mendapat masa...

Atas ialah kandungan terperinci Nota / helah / pelajaran / nuansa Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
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