下面我们来讲,四大常用数据类型中的最后一个——字典
- 字典也是可变的数据类型
- 字典跟列表一样,能存储任何的数据类型
- 字典是以大括号{}为标识的
- 字典的元素表现形式为键值对(key=>value),键与值之间用冒号:分隔,元素与元素之间用逗号分隔
my_dict= {key1 : value1, key2 : value2, key3 : value3 }
- 特别注意:键一定是不可变类型数据!且键必须是唯一的!(值可以不唯一)
字典:创建
- 一般键都为字符串
my_dict = {"one":1, "two":2, "three": 3}
- 也可以为数字
my_dict = {1:"one", 2:"two", 3:"three"}
- 也可以创建空的字典
my_dict = {}
- 也可以键的数据类型不是一样的
my_dict = {1:"one", "two":2, 11.11: "test"}
字典:访问值
假设我们的字典为my_dict = {"1": 1, "2": 2, "3": 3, 3: "33", 2: "22", 1: "11"}
我们可以使用dict[key]的方式来获取相应的value:
my_dict = {"1": 1, "2": 2, "3": 3, 3: "33", 2: "22", 1: "11"}
print(my_dict[1])
print(my_dict[2])
print(my_dict[3])
print(my_dict["1"])
print(my_dict["2"])
print(my_dict["3"])
print(my_dict[4])
结果为:
11
22
33
1
2
3
Traceback (most recent call last):
File "C:/Users/xxx/PycharmProjects/untitled/Test/test.py", line 8, in
print(my_dict[4])
KeyError: 4
从上面的例子,我们可以看出,数字1的键和字符串1的键,是两种不同的键。
如果使用了字典中没有的键去获取值,程序就会报错,(就像例子中我们去获取键为4的值)。
字典:更新
- 字典的更新形式为dict[key] = value
- 如果key是已有的key,那么会使用新的value把老的value替换掉
- 如果key是新的key,那么就会在字典中添加新的元素
my_dict = {"1": 1, "2": 2, "3": 3, 3: "33", 2: "22", 1: "11"}
my_dict[1] = 1111111 # 修改元素
print(my_dict)
my_dict[55] = "AAAAAAAA" # 添加元素
print(my_dict)
结果为:
{'1': 1, '2': 2, '3': 3, 3: '33', 2: '22', 1: 1111111}
{'1': 1, '2': 2, '3': 3, 3: '33', 2: '22', 1: 1111111, 55: 'AAAAAAAA'}
字典:删除
- 字典的删除有两种
- 一种是使用del去删除单个元素
- 另一种是使用clear函数去清空字典
my_dict = {"1": 1, "2": 2, "3": 3, 3: "33", 2: "22", 1: "11"}
del my_dict["1"]
print(my_dict)
my_dict.clear()
print(my_dict)
结果为:
{'2': 2, '3': 3, 3: '33', 2: '22', 1: '11'}
{}
字典:常用方法
len()可以计算字典的元素个数
例子:
my_dict ={"1": 1, "2": 2, "3": 3, 3: "33", 2: "22", 1: "11"}
print(len(my_dict))
结果为:
6
str()可以将字典转换成字符串类型
例子:
my_dict = {"1": 1, "2": 2, "3": 3, 3: "33", 2: "22", 1: "11"}
print(str(my_dict))
结果为:
{'1': 1, '2': 2, '3': 3, 3: '33', 2: '22', 1: '11'}
字典:常用函数
- clear() 函数用于删除字典内所有元素。
例子:
my_dict = {"1": 1, "2": 2, "3": 3}
my_dict.clear()
print(my_dict)
my_dict_2 = {3: "33", 2: "22", 1: "11"}
结果为:
{}
- copy()函数用于复制一份字典
- 就像是列表的copy()一样,因为字典是可变类型,如果不使用copy(),随便修改一个变量,也会影响到另一个变量
- get() 函数返回指定键的值。
- 可选参数为default:如果键不存在时,返回的值。默认为None
例子:
my_dict = {"1": 1, "2": 2, "3": 3}
print(my_dict.get("1"))
print(my_dict.get(1,"不存在你要获取的这个值"))
结果为:
1
不存在你要获取的这个值
- in 用于判断键是否存在于字典中,如果键在字典 dict 里返回 true,否则返回 false。
- not in 正好相反,如果键在字典 dict 里返回 false,否则返回 true。
例子:
my_dict = {"1": 1, "2": 2, "3": 3}
print("1" in my_dict)
print("1" not in my_dict)
结果为:
True
False
- items() 函数是以列表的方式,返回一个可遍历的key/value 对。
例子:
my_dict = {"1": 1, "2": 2, "3": 3}
print(my_dict.items()) # 在这个例子中,我们返回的是一个叫做dict_items的类型,不能直接当做列表来使用
print(list(my_dict.items())) # 我们可以把dict_items强制转换成列表
结果为:
dict_items([('1', 1), ('2', 2), ('3', 3)])
[('1', 1), ('2', 2), ('3', 3)]
- keys() 函数是以列表的方式,返回一个只有键的列表
例子:
my_dict = {"1": 1, "2": 2, "3": 3}
print(my_dict.keys()) # 在这个例子中,我们返回的是一个叫做dict_keys的类型,不能直接当做列表来使用
print(list(my_dict.keys()))# 我们可以把dict_keys强制转换成列表
结果为:
dict_keys(['1', '2', '3'])
['1', '2', '3']
- values()函数是以列表的方式,返回一个只有值的列表
例子:
my_dict = {"1": 1, "2": 2, "3": 3}
print(my_dict.values()) # 在这个例子中,我们返回的是一个叫做dict_values的类型,不能直接当做列表来使用
print(list(my_dict.values()))# 我们可以把dict_values强制转换成列表
结果为:
dict_values([1, 2, 3])
[1, 2, 3]
- popitem()函数会返回字典中的最后一个键值对,并在字典中删除
例子:
my_dict = {"1": 1, "2": 2, "3": 3}
print(my_dict.popitem())
print(my_dict)
结果为:
('3', 3)
{'1': 1, '2': 2}
- update() 函数把字典参数 dict2 的 key/value(键/值) 对更新到字典 dict 里。
例子:
my_dict = {"1": 1, "2": 2, "3": 3}
my_dict_2 = {3: "33", 2: "22", 1: "11"}
my_dict.update(my_dict_2)
print(my_dict)
结果为:
{'1': 1, '2': 2, '3': 3, 3: '33', 2: '22', 1: '11'}