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.
Jika anda telah membaca artikel Senarai, anda akan mudah memahami konsep kamus. Mereka sangat serupa dengan senarai, tetapi dengan dua perbezaan utama:
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.
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. 🎜
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. 🎜
len()
seperti yang ditunjukkan di bawah: 🎜
🎜len(english_french)
🎜
🎜Anda harus mengembalikan 5
. 🎜
door
daripada kamus. Ini boleh dilakukan secara ringkas seperti berikut: 🎜
🎜del english_french['door']
🎜🎜🎜
🎜Ini akan memadamkan 🎜kunci 🎜 door
dan 🎜value 🎜porte
nya. 🎜
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'
🎜🎜🎜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()
Pelajar = {'ID':{'name':'Abder-Rahman', 'nombor':'1234'}}
🎜🎜🎜
🎜Jadi, jika anda menaip pelajar['ID']
anda seharusnya mendapat: 🎜
🎜{'name': 'Abder-Rahman', 'nombor': '1234'}
🎜
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
🎜🎜🎜
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!