1.字典的定义
字典, 以字为单位,按一定次序排列,每个字注上读音、意义和用法的工具书。
在Python中,字典(Dictionary)是一种无序的、可变的数据集合,用于存储键值对(key-value pairs)。字典的定义使用花括号 { }
,其中每个元素都是一个键值对,键和值之间使用冒号 :
分隔,每对键值对之间使用逗号 ,
分隔。
my_dict = {key1: value1, key2: value2, key3: value3}
其中:
my_dict
是字典的变量名,可以根据需要自行命名。key1
,key2
,key3
是字典中的键,它们必须是不可变的数据类型(通常是字符串或者数值)。value1
,value2
,value3
是与每个键关联的值,可以是任何数据类型,包括整数、浮点数、字符串、列表、元组、甚至是另一个字典等。
my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}
在这个例子中:
'name'
,'age'
,'city'
是字典的键。'Alice'
,30
,'New York'
是对应的值。
字典中的键必须是唯一的,但值则可以重复。字典是无序的,这意味着字典中元素的顺序不固定,不像列表那样可以通过索引访问元素。
字典的值可以通过键快速获取,也意味着存储值需要额外的存储键。
创建字典的几种方法:
直接使用花括号创建字典:
dict1 = {'a': 1, 'b': 2, 'c': 3}
print(dict1)
使用dict函数创建字典:
dict2 = dict(a=1, b=2, c=3)
print(dict2)
使用字典推导式创建字典:
list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]
dict3 = {list1[i]: list2[i] for i in range(len(list1))}
print(dict3)
使用zip函数创建字典:
list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]
dict4 = dict(zip(list1, list2))
print(dict4)
使用dict.fromkeys()创建具有相同值的字典:
dict5 = dict.fromkeys('abc', 1)
print(dict5)
2.字典的键与值
在Python字典中,键(key)和值(value)有以下特点和使用方法:
-
键(Key):
- 键必须是唯一的,不能重复。如果在定义字典时同一个键被指定多次,只会保留最后一个键值对。
- 键必须是不可变的数据类型,比如整数、浮点数、字符串、元组等。通常使用字符串作为键,因为字符串在字典中的使用非常灵活。
-
值(Value):
- 值可以是任意数据类型,可以是整数、浮点数、字符串、列表、元组、甚至是另一个字典。
- 与键不同的是,值可以重复,即不同的键可以拥有相同的值。
还有两点需要注意:
1.不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
tinydict = {'Name': 'Runoob', 'Age': 7, 'Name': 'CSDN'}
print ("tinydict['Name']: ", tinydict['Name'])
'''
以上实例输出结果:
tinydict['Name']: CSDN
'''
2.键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
tinydict = {['Name']: 'Runoob', 'Age': 7}
print ("tinydict['Name']: ", tinydict['Name'])
'''
以上实例输出结果:
Traceback (most recent call last):
File "test.py", line 1, in <module>
tinydict = {['Name']: 'Runoob', 'Age': 7}
TypeError: unhashable type: 'list'
'''
3.字典的常见操作
Python 字典是一种非常灵活和常用的数据结构,支持多种操作来增加、删除、访问和修改元素。以下是字典常见的操作:
创建空字典
使用大括号 { } 创建空字典:
# 使用大括号 {} 来创建空字典
emptyDict = {}
# 打印字典
print(emptyDict)
# 查看字典的数量
print("Length:", len(emptyDict))
# 查看类型
print(type(emptyDict))
'''
以上实例输出结果:
{}
Length: 0
<class 'dict'>
'''
使用内建函数 dict() 创建字典:
emptyDict = dict()
# 打印字典
print(emptyDict)
# 查看字典的数量
print("Length:",len(emptyDict))
# 查看类型
print(type(emptyDict))
'''
以上实例输出结果:
{}
Length: 0
<class 'dict'>
'''
访问字典里的值
把相应的键放入到方括号中
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print ("tinydict['Name']: ", tinydict['Name'])
print ("tinydict['Age']: ", tinydict['Age'])
'''
以上实例输出结果:
tinydict['Name']: Runoob
tinydict['Age']: 7
'''
如果用字典里没有的键访问数据,会输出错误如下:
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print ("tinydict['Alice']: ", tinydict['Alice'])
#以上实例输出结果:
'''
Traceback (most recent call last):
File "test.py", line 2, in <module>
print ("tinydict['Alice']: ", tinydict['Alice'])
KeyError: 'Alice'
'''
修改字典
向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} tinydict['Age'] = 8
# 更新 Age tinydict['School'] = "CSDN"
# 添加信息 print ("tinydict['Age']: ", tinydict['Age'])
print ("tinydict['School']: ", tinydict['School'])
'''
以上实例输出结果:
tinydict['Age']: 8
tinydict['School']: CSDN
'''
删除字典元素
能删单一的元素也能清空字典,清空只需一项操作。
显式删除一个字典用del命令
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} del tinydict['Name']
# 删除键
'Name' tinydict.clear()
# 清空字典
del tinydict
# 删除字典
print ("tinydict['Age']: ", tinydict['Age'])
print ("tinydict['School']: ", tinydict['School'])
'''
但这会引发一个异常,因为用执行 del 操作后字典不再存在:
Traceback (most recent call last):
File "/runoob-test/test.py", line 9, in <module>
print ("tinydict['Age']: ", tinydict['Age'])
NameError: name 'tinydict' is not defined
'''
字典的内置函数
Python字典包含了以下内置函数:
Python字典包含了以下内置方法:
|