cari
Rumahpembangunan bahagian belakangTutorial PythonLima helah tersembunyi dalam Python yang mungkin anda tidak pernah dengar

Lima helah tersembunyi dalam Python yang mungkin anda tidak pernah dengar

Hidup ini singkat, belajar Python dengan cepat

1 ... Objek

Ya, anda membacanya dengan betul, ia adalah "... "

Dalam Python... mewakili objek bernama Ellipsis. Menurut penerangan rasmi, ia adalah nilai istimewa yang biasanya boleh digunakan sebagai pemegang tempat untuk fungsi kosong atau digunakan untuk operasi menghiris dalam Numpy.

Contohnya:

def my_awesome_function():
...

bersamaan dengan:

def my_awesome_function():
Ellipsis

Sudah tentu, anda juga boleh menggunakan pas atau rentetan sebagai pemegang tempat:

def my_awesome_function():
pass
def my_awesome_function():
"An empty, but also awesome function"

Kesan akhir mereka adalah sama.

Mari kita bincangkan bagaimana... objek memainkan peranan dalam Numpy Cipta tatasusunan matriks 3x3x3, dan kemudian dapatkan lajur kedua bagi semua matriks paling dalam:

>>> import numpy as np
>>> array = np.arange(27).reshape(3, 3, 3)
>>> array
array([[[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8]],
 [[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]],
 [[18, 19, 20],
[21, 22, 23],
[24, 25, 26]]])

Untuk mendapatkan. lajur kedua matriks peringkat atas, kaedah tradisional mungkin seperti ini:

>>> array[:, :, 1]
array([[ 1, 4, 7],
 [10, 13, 16],
 [19, 22, 25]])

Jika anda akan menggunakan... objek, ia akan menjadi seperti ini:

>>> array[..., 1]
array([[ 1, 4, 7],
 [10, 13, 16],
 [19, 22, 25]])

Perhatikan, walau bagaimanapun, bahawa ... objek hanya tersedia dalam Numpy, bukan tatasusunan terbina dalam Python.

2. Penyahmampatan objek lelaran

Penyahmampatan objek lelaran ialah ciri yang sangat mudah:

>>> a, *b, c = range(1, 11)
>>> a
1
>>> c
10
>>> b
[2, 3, 4, 5, 6, 7, 8, 9]

atau:

>>> a, b, c = range(3)
>>> a
0
>>> b
1
>>> c
2

Begitu juga , bukannya menulis kod seperti ini:

>>> lst = [1]
>>> a = lst[0]
>>> a
1
>>> (a, ) = lst
>>> a
1

Anda boleh melakukan operasi tugasan yang lebih elegan seperti membongkar objek boleh lelar:

>>> lst = [1]
>>> [a] = lst
>>> a
1

Walaupun ini kelihatan agak bodoh, tetapi ini hanya saya Secara peribadi, ia lebih elegan daripada cara penulisan sebelum ini.

3. Seni pengembangan

Terdapat pelbagai cara pelik untuk mengembangkan tatasusunan, seperti:

>>> l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> flattened = [elem for sublist in l for elem in sublist]
>>> flattened
[1, 2, 3, 4, 5, 6, 7, 8, 9]

Jika anda mempunyai pemahaman tertentu tentang reduce dan lambda, adalah disyorkan untuk menggunakan Cara yang lebih elegan:

>>> from functools import reduce
>>> reduce(lambda x,y: x+y, l)
[1, 2, 3, 4, 5, 6, 7, 8, 9]

Dengan menggabungkan pengurangan dan lambda, anda boleh melakukan operasi penyambungan pada setiap sub-tatasusunan dalam tatasusunan l.

Sudah tentu, terdapat cara yang lebih ajaib:

>>> sum(l, [])
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> # 其实相当于 [] + [1, 2, 3] + [4, 5, 6] + [7, 8, 9]

Ya, dengan melakukan operasi jumlah pada tatasusunan dua dimensi, setiap elemen dalam tatasusunan dua dimensi boleh "ditambah " "Ia adalah mustahil untuk bersatu.

Dengan cara yang sama, jika anda melakukan operasi jumlah pada tatasusunan tiga dimensi, ia boleh diubah menjadi tatasusunan dua dimensi Pada masa ini, jika anda melakukan operasi jumlah pada tatasusunan dua dimensi tatasusunan, ia boleh dikembangkan menjadi tatasusunan satu dimensi.

Walaupun teknik ini hebat, saya tidak mengesyorkannya kerana kebolehbacaannya sangat lemah.

4. Underscore _ variable

Setiap kali anda menjalankan ungkapan dalam penterjemah Python, IPython atau Django Console, Python akan mengikat nilai output ke dalam pembolehubah _:

>>> nums = [1, 3, 7]
>>> sum(nums)
11
>>> _
11
>>>

Oleh kerana ia adalah pemboleh ubah, anda sentiasa boleh menulis semula, atau memanipulasi ia seperti pemboleh ubah biasa:

>>> 9 + _
20
>>> a = _
>>> a
20

5. digunakan di banyak tempat Sebagai tambahan kepada if else yang biasa, kita juga boleh menggunakannya dalam pengendalian gelung dan pengecualian.

Gelung

Jika anda perlu menentukan sama ada logik tertentu diproses dalam gelung, ini biasanya dilakukan:

Jika lain diperkenalkan, kita boleh menggunakan kurang satu Pembolehubah:
found = False
a = 0
while a < 10:
if a == 12:
found = True
a += 1
if not found:
print("a was never found")

Pengendalian pengecualian
a = 0
while a < 10:
if a == 12:
break
a += 1
else:
print("a was never found")

Kita boleh menggunakan lain dalam percubaan... kecuali... untuk menulis logik apabila pengecualian tidak ditangkap:

Dengan cara ini, jika program tidak mempunyai pengecualian, ia akan mengambil bahagian lain:
In [13]: try:
...: {}['lala']
...: except KeyError:
...: print("Key is missing")
...: else:
...: print("Else here")
...:
Key is missing

Jika anda sering melakukan pengendalian pengecualian, anda akan tahu bahawa teknik ini agak mudah.
In [14]: try:
...: {'lala': 'bla'}['lala']
...: except KeyError:
...: print("Key is missing")
...: else:
...: print("Else here")
...:
Else here

Atas ialah kandungan terperinci Lima helah tersembunyi dalam Python yang mungkin anda tidak pernah dengar. 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
Bagaimanakah array numpy berbeza dari tatasusunan yang dibuat menggunakan modul array?Bagaimanakah array numpy berbeza dari tatasusunan yang dibuat menggunakan modul array?Apr 24, 2025 pm 03:53 PM

Numpyarraysarebetterfornumericationsoperationsandmulti-dimensialdata, whiletheArrayModuleissuitiableforbasic, ingatan-efisienArrays.1) numpyexcelsinperformanceandfunctionalityforlargedatasetsandcomplexoperations.2) thearrayModeMoremoremory-efficientModeMoremoremoremory-efficientModeMoremoremoremory-efficenceismemoremoremoremoremoremoremoremory-efficenceismemoremoremoremoremorem

Bagaimanakah penggunaan array Numpy berbanding dengan menggunakan array modul array di Python?Bagaimanakah penggunaan array Numpy berbanding dengan menggunakan array modul array di Python?Apr 24, 2025 pm 03:49 PM

NumpyarraysareBetterforheavynumericalcomputing, whilethearraymoduleismoresuitifFormemory-constrainedprojectswithsimpledatypes.1) numpyarraysofferversativilityandperformanceForlargedATAsetSandcomplexoperations.2)

Bagaimanakah modul CTYPES berkaitan dengan tatasusunan di Python?Bagaimanakah modul CTYPES berkaitan dengan tatasusunan di Python?Apr 24, 2025 pm 03:45 PM

ctypesallowscreatingandmanipulatingc-stylearraysinpython.1) usectypestointerwithclibrariesforperformance.2) createec-stylearraysfornumericalcomputations.3) Passarraystocfuntionsforficientsoperations.however, becautiousofmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmem

Tentukan 'array' dan 'senarai' dalam konteks Python.Tentukan 'array' dan 'senarai' dalam konteks Python.Apr 24, 2025 pm 03:41 PM

InPython,a"list"isaversatile,mutablesequencethatcanholdmixeddatatypes,whilean"array"isamorememory-efficient,homogeneoussequencerequiringelementsofthesametype.1)Listsareidealfordiversedatastorageandmanipulationduetotheirflexibility

Adakah senarai python berubah atau tidak berubah? Bagaimana dengan array python?Adakah senarai python berubah atau tidak berubah? Bagaimana dengan array python?Apr 24, 2025 pm 03:37 PM

Pythonlistsandarraysarebothmutable.1) listsareflexibleandsupportheterogeneousdatabutarelessmememory.2) arraysaremorememoremoryficorhomogeneousdatabutlessatile, memerlukanCorrectypecodeusagetoavoiderrors.

Python vs C: Memahami perbezaan utamaPython vs C: Memahami perbezaan utamaApr 21, 2025 am 12:18 AM

Python dan C masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1) Python sesuai untuk pembangunan pesat dan pemprosesan data kerana sintaks ringkas dan menaip dinamik. 2) C sesuai untuk prestasi tinggi dan pengaturcaraan sistem kerana menaip statik dan pengurusan memori manual.

Python vs C: Bahasa mana yang harus dipilih untuk projek anda?Python vs C: Bahasa mana yang harus dipilih untuk projek anda?Apr 21, 2025 am 12:17 AM

Memilih Python atau C bergantung kepada keperluan projek: 1) Jika anda memerlukan pembangunan pesat, pemprosesan data dan reka bentuk prototaip, pilih Python; 2) Jika anda memerlukan prestasi tinggi, latensi rendah dan kawalan perkakasan yang rapat, pilih C.

Mencapai matlamat python anda: kekuatan 2 jam sehariMencapai matlamat python anda: kekuatan 2 jam sehariApr 20, 2025 am 12:21 AM

Dengan melabur 2 jam pembelajaran python setiap hari, anda dapat meningkatkan kemahiran pengaturcaraan anda dengan berkesan. 1. Ketahui Pengetahuan Baru: Baca dokumen atau tutorial menonton. 2. Amalan: Tulis kod dan latihan lengkap. 3. Kajian: Menyatukan kandungan yang telah anda pelajari. 4. Amalan Projek: Sapukan apa yang telah anda pelajari dalam projek sebenar. Pelan pembelajaran berstruktur seperti ini dapat membantu anda menguasai Python secara sistematik dan mencapai matlamat kerjaya.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.