Python - 字典


字典是Python中内置的数据类型之一。Python 的字典就是映射类型的示例。映射对象将一个对象的值“映射”到另一个对象。

在语言词典中,我们有成对的单词和相应的含义。对的两个部分是键(单词)和值(含义)。类似地,Python字典也是key:value对的集合。这些对以逗号分隔并放在大括号 {} 内。

为了建立键和值之间的映射,冒号“:”放在两者之间。

下面给出了 Python 字典对象的一些示例 -

capitals = {"Maharashtra":"Mumbai", "Gujarat":"Gandhinagar", "Telangana":"Hyderabad", "Karnataka":"Bengaluru"}
numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
marks = {"Savita":67, "Imtiaz":88, "Laxman":91, "David":49}

实施例1

只能使用数字、字符串或元组作为键。它们都是不可改变的。您可以使用任何类型的对象作为值。因此,以下字典定义也是有效的 -

d1 = {"Fruit":["Mango","Banana"], "Flower":["Rose", "Lotus"]}
d2 = {('India, USA'):'Countries', ('New Delhi', 'New York'):'Capitals'}
print (d1)
print (d2)

它将产生以下输出-

{'Fruit': ['Mango', 'Banana'], 'Flower': ['Rose', 'Lotus']}
{'India, USA': 'Countries', ('New Delhi', 'New York'): 'Capitals'}

实施例2

Python 不接受可变对象(例如列表)作为键,并引发 TypeError。

d1 = {["Mango","Banana"]:"Fruit", "Flower":["Rose", "Lotus"]}
print (d1)

它将引发 TypeError -

Traceback (most recent call last):
   File "C:\Users\Sairam\PycharmProjects\pythonProject\main.py", line 8, in <module>
d1 = {["Mango","Banana"]:"Fruit", "Flower":["Rose", "Lotus"]}
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: unhashable type: 'list'

实施例3

您可以为字典中的多个键分配一个值,但一个键不能在字典中出现多次。

d1 = {"Banana":"Fruit", "Rose":"Flower", "Lotus":"Flower", "Mango":"Fruit"}
d2 = {"Fruit":"Banana","Flower":"Rose", "Fruit":"Mango", "Flower":"Lotus"}
print (d1)
print (d2)

它将产生以下输出-

{'Banana': 'Fruit', 'Rose': 'Flower', 'Lotus': 'Flower', 'Mango': 'Fruit'}
{'Fruit': 'Mango', 'Flower': 'Lotus'}

Python 字典运算符

在 Python 中,以下运算符被定义为与字典操作数一起使用。在示例中,使用了以下字典对象。

d1 = {'a': 2, 'b': 4, 'c': 30}
d2 = {'a1': 20, 'b1': 40, 'c1': 60}
操作员 描述 例子
字典[键] 提取/分配与键映射的值 print (d1['b']) 检索 4

d1['b'] = 'Z' 为键 'b' 分配新值

字典1|字典2 两个字典对象的并集,重新调整新对象 d3=d1|d2; 打印(d3)

{'a': 2, 'b': 4, 'c': 30, 'a1': 20, 'b1': 40, 'c1': 60}

字典1|=字典2 增强字典联合运算符 d1|=d2;打印(d1)

{'a': 2, 'b': 4, 'c': 30, 'a1': 20, 'b1': 40, 'c1': 60}