Kajian semula asas kamus Python yang menyegarkan

王林
Lepaskan: 2023-09-03 20:09:02
asal
1404 orang telah melayarinya

Python 字典基础知识的令人耳目一新的回顾

Dalam tutorial sebelum ini, saya membincangkan jenis objek yang sangat serba boleh dan fleksibel dalam Python, iaitu list. Dalam artikel ini, saya akan meneruskan ulasan saya tentang jenis objek Python fleksibel lain yang dipanggil kamus (juga dikenali sebagai tatasusunan bersekutu atau cincang). Seperti senarai, kamus ialah konsep penting untuk dikuasai untuk bergerak ke hadapan dalam perjalanan Python anda.

Apakah kamus?

Jika anda telah membaca artikel Senarai, anda akan mudah memahami konsep kamus. Mereka sangat serupa dengan senarai, tetapi dengan dua perbezaan utama:

  1. Ia adalah set tidak tersusun (tidak seperti senarai tersusun).
  2. kekunci digunakan untuk mengakses item dan bukannya lokasi ( iaitu indeks).

Setiap kunci dalam kamus mempunyai nilai, yang boleh berupa sebarang jenis objek Python. Iaitu, kamus boleh dilihat sebagai pasangan nilai-kunci. Walau bagaimanapun, sila ambil perhatian bahawa kekunci tidak boleh daripada jenis Senarai atau Kamus.

Mari cipta kamus Inggeris-Perancis

Seperti yang kita lihat dalam bahagian sebelumnya, kamus hanyalah set pasangan nilai kunci yang tidak tertib. Mari gunakan konsep ini untuk mencipta contoh pertama kami: kamus Inggeris-Perancis. Kamus boleh dibuat seperti berikut:

english_french = {'paper':'papier', 'pen':'stylo', 'car':'voiture', 'table':'table','door':' porte '}english_french = {'paper':'papier', 'pen':'stylo', 'car':'voiture', 'table':'table','door':' porte'}

字典 english_french 包含五个英语单词,设置为,其法语含义设置为

假设我们想知道如何用法语说 pen。我们只需执行以下操作:

english_french['pen']

您将在其中获得 stylo 作为返回值。

让事情变得更有趣

假设我们有一个 french_spanish 词典,其单词与 english_french 词典中的单词相同,如下所示:

french_spanish = {'papier':'papel', 'stylo':'pluma', 'voiture':'coche', 'table':'mesa', 'porte':' puerta'}

好吧,有人问您如何用西班牙语说 door,而您手头没有英语-西班牙语词典!但是,不用担心,有一个解决方案。查阅您的 english_french 词典中的单词,然后使用结果查阅 french_spanish 词典。明白了吗?让我们看看如何在 Python 中做到这一点:

french_spanish[english_french['door']]

结果应该是 puerta。这不是很好吗?尽管您没有英语-西班牙语词典,但您刚刚得到了西班牙语中的 door 一词。

更多字典操作

在前面的示例中,我们了解了如何创建字典并访问字典中的项目。让我们看看可以对字典进行更多操作。我将在下面的示例中使用 english_french 字典。

字典中有多少条目?

换句话来说,这个操作的目的是返回Dictionary中键值对的数量。这可以使用 len() 运算符来执行,如下所示:

len(english_french)

您应该返回 5

删除键

字典中项目的删除是通过进行的。例如,假设我们想从字典中删除单词(键) door 。这可以简单地完成如下:

del english_french['door']

这将删除 door 及其porte

字典中是否存在该键?

在上一小节中,我们从字典中删除了 door。如果我们想检查 door 是否仍然存在于字典中,我们输入:

english_french 中的“门”

应该返回 False

因此,您认为以下语句会返回什么?继续尝试一下(注意 not)。

'door' 不在 english_french

如果我们尝试访问字典中不存在的会发生什么?说 english_french['door']。在这种情况下,您将收到类似于以下内容的错误:

回溯(最近一次调用最后):

  文件“dictionary.py”,第 7 行,位于 <module></module>

    打印 english_french['door']

KeyError: 'door'

Kamus english_french mengandungi lima perkataan Inggeris yang ditetapkan kepada 🎜keys🎜 dan makna Perancisnya ditetapkan kepada 🎜values🎜. 🎜 🎜Andaikan kita ingin tahu cara menyebut pen dalam bahasa Perancis. Apa yang perlu kita lakukan ialah: 🎜 🎜english_french['pen']🎜 🎜Anda akan mendapat stylo sebagai nilai pulangan di dalamnya. 🎜

Jadikan perkara lebih menarik

🎜Andaikan kita mempunyai kamus french_spanish yang perkataannya sama dengan yang terdapat dalam kamus english_french, seperti ini: 🎜 🎜french_spanish = {'papier':'papel', 'stylo':'pluma', 'voiture':'coche', 'table':'mesa', 'porte':' puerta '}🎜🎜🎜 🎜Nah, seseorang bertanya kepada anda cara menyebut door dalam bahasa Sepanyol dan anda tidak mempunyai kamus Inggeris-Sepanyol! Tapi, jangan risau, ada penyelesaiannya. Cari perkataan dalam kamus english_french anda, kemudian gunakan hasilnya untuk mencari kamus french_spanish. faham? Mari lihat cara melakukan ini dalam Python: 🎜 🎜bahasa perancis_sepanyol[english_french['pintu']]🎜🎜🎜 🎜Hasilnya hendaklah puerta. Bukankah ini hebat? Walaupun anda tidak mempunyai kamus Inggeris-Sepanyol, anda baru sahaja mendapat perkataan door dalam bahasa Sepanyol. 🎜 🎜Lebih banyak operasi kamus🎜 🎜Dalam contoh sebelumnya, kami melihat cara mencipta kamus dan mengakses item dalam kamus. Mari lihat apa lagi yang boleh kita lakukan dengan kamus. Saya akan menggunakan kamus english_french dalam contoh di bawah. 🎜

Berapa banyak entri yang terdapat dalam kamus?

🎜Dalam erti kata lain, tujuan operasi ini adalah untuk mengembalikan bilangan pasangan nilai kunci dalam Kamus. Ini boleh dilakukan menggunakan operator len() seperti yang ditunjukkan di bawah: 🎜 🎜len(english_french)🎜 🎜Anda harus mengembalikan 5. 🎜

Kekunci Padam

🎜Pemadaman item dalam kamus dilakukan melalui kekunci 🎜 🎜. Sebagai contoh, katakan kita mahu mengalih keluar perkataan (kunci) door daripada kamus. Ini boleh dilakukan secara ringkas seperti berikut: 🎜 🎜del english_french['door']🎜🎜🎜 🎜Ini akan memadamkan 🎜kunci 🎜 door dan 🎜value 🎜portenya. 🎜

Adakah kunci wujud dalam kamus?

🎜Dalam bahagian sebelumnya, kami mengalih keluar kekunci 🎜 🎜 door daripada kamus. Jika kami ingin menyemak sama ada door masih wujud dalam kamus, kami masukkan: 🎜 🎜"Gate" dalam english_french🎜 🎜Hendaklah mengembalikan False. 🎜 🎜Jadi, pada pendapat anda, apakah kenyataan berikut akan kembali? Teruskan dan cuba (perhatikan not). 🎜 🎜'door' bukan dalam english_french🎜 🎜Apakah yang berlaku jika kita cuba mengakses 🎜kunci🎜 yang tidak wujud dalam kamus? Sebut english_french['door']. Dalam kes ini, anda akan menerima ralat yang serupa dengan yang berikut: 🎜 🎜Traceback (panggilan terakhir terakhir):🎜 🎜 Fail "dictionary.py", baris 7, dalam <module></module>🎜 🎜 Cetak english_french['door']🎜 🎜KeyError: 'pintu'🎜🎜🎜

Buat salinan kamus

Anda mungkin memerlukan salinan kamus english_french dan berikannya kepada kamus lain. Ini boleh dilakukan hanya menggunakan fungsi copy() seperti yang ditunjukkan di bawah: english_french 词典的副本,并将其分配给另一个词典。这可以使用 copy() 函数简单地完成,如下所示:

new_english_french = english_french.copy()

嵌套字典

正如我们上面提到的,字典中的值可以是任何类型,包括字典。这称为嵌套。示例如下:

学生 = {'ID':{'name':'Abder-Rahman', 'number':'1234'}}

因此,如果您输入 student['ID'],您应该得到:

{'name': 'Abder-Rahman', 'number': '1234'} 

迭代字典

让我们回到 english_french 字典。您可以通过多种方式迭代字典的项目:

english_french 中的单词:

    打印单词

该语句的结果如下:

car

pen

paper

door

table 

请注意,结果中的的顺序与 english_french 字典中的顺序不同。您现在可以明白为什么我说字典被视为无序集合了。

迭代的另一种方法如下:

对于 english_french.iterkeys() 中的单词:

    打印单词

请注意,我们使用了 iterkeys() 函数。类似的可用于迭代值的函数,即 itervalues(),如下所示:

用于 english_french.itervalues() 中的含义:

    打印含义

本例中的结果应如下所示:

voiture

stylo

papier

porte

table

创建字典的替代方法

还有其他方法可以使用 dict 构造函数在 Python 中创建字典。使用 dict 创建相同词典 ID 的一些示例如下:

ID = dict(name = 'Abder-Rahman', number = 1234)

ID = dict([('name','Abder-Rahman'),('number',1234)])

ID = dict(zip(['name','number'],['Abder-Rahman',1234])) # 键和值作为列表

new_english_french = english_french.copy()

Kamus bersarang

Seperti yang kami nyatakan di atas, nilai dalam kamus boleh terdiri daripada sebarang jenis, termasuk kamus. Ini dipanggil bersarang. Contohnya seperti berikut:

🎜 🎜Pelajar = {'ID':{'name':'Abder-Rahman', 'nombor':'1234'}}🎜🎜🎜 🎜Jadi, jika anda menaip pelajar['ID'] anda seharusnya mendapat: 🎜 🎜{'name': 'Abder-Rahman', 'nombor': '1234'} 🎜

Kamus berulang

🎜Mari kita kembali ke kamus english_french. Anda boleh mengulangi item kamus dalam beberapa cara: 🎜 🎜Perkataan dalam english_french:🎜 🎜 Cetak perkataan🎜 🎜Hasil kenyataan ini adalah seperti berikut: 🎜 🎜kereta🎜 🎜pen🎜 🎜kertas🎜 🎜pintu🎜 🎜jadual 🎜 🎜Sila ambil perhatian bahawa susunan kunci dalam keputusan adalah berbeza daripada susunan dalam kamus english_french. Anda kini boleh melihat mengapa saya mengatakan bahawa kamus dianggap sebagai koleksi tidak tersusun. 🎜🎜🎜 🎜Cara lain untuk mengulang kekunci adalah seperti berikut: 🎜 🎜Untuk perkataan dalam english_french.iterkeys():🎜 🎜 Cetak perkataan🎜 🎜Sila ambil perhatian bahawa kami menggunakan fungsi iterkeys(). Fungsi serupa yang boleh digunakan untuk mengulang nilai, iaitu itervalues(), kelihatan seperti ini: 🎜 🎜Maksud yang digunakan dalam english_french.itervalues():🎜 🎜 Cetak makna🎜 🎜Hasil dalam contoh ini sepatutnya kelihatan seperti ini: 🎜 🎜voiture🎜 🎜stylo🎜 🎜kertas🎜 🎜porte🎜 🎜jadual🎜🎜🎜

Cara alternatif untuk mencipta kamus

🎜Terdapat cara lain untuk mencipta kamus dalam Python menggunakan pembina dict. Beberapa contoh penggunaan dict untuk mencipta kamus ID yang sama adalah seperti berikut: 🎜 🎜ID = dict(nama = 'Abder-Rahman', nombor = 1234)🎜🎜🎜 🎜ID = dict([('name','Abder-Rahman'),('nombor',1234)])🎜🎜🎜 🎜ID = dict(zip(['nama','nombor'],['Abder-Rahman',1234])) # Kunci dan nilai sebagai senarai🎜🎜 🎜 🎜Anda boleh melakukan lebih banyak lagi dengan kamus. Lihat dokumentasi Python untuk maklumat lanjut. 🎜

Atas ialah kandungan terperinci Kajian semula asas kamus Python yang menyegarkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!