大家好,我是宁一。
字典是python的一种数据类型,使用大括号{ }将数据包起来,数据之间用英文逗号,隔开。
字典可以存储任意类型对象。每个元素由key : value 两部分组成,我们一般称为键值对。
键指的是key,值指的是value,他们总会成对出现,格式如下:
d = {key1 : value1, key2 : value2 }
1、键和值的特点
(1)键是唯一的,值不需要唯一。
正确示例:
d = {"name1":"宁一","name2":"宁一"}
print(d)
# 输出 {'name1': '宁一', 'name2': '宁一'}
错误示例:
d = {"name":"宁一","name":"喵宁"}
print(d)
# 输出 {'name': '喵宁'}
字典是不允许同一个键出现两次的。这样定义虽然不会报错,但是前面的key会被后面的key覆盖。
(2)键必须是不可变的,值可以取任何数据类型。
键可以取得数据类型有:数字、字符串、元组。
值可以取任何数据类型,比如:字符串、数字、列表、元组、字典、集合等。
了解上面数据类型,可以到主页查看第5课。
正确示例:
# 值可以是列表、字典等
d = {'name':["宁一","喵宁"]}
d = {'name':{"name1":"宁一","name2":"喵宁"}}
错误示例:
# 将列表等可变数据类型放在key的位置是错误的
d = {["宁一", "喵宁"]:"name"}
#报错 TypeError: unhashable type: 'list'
# 换成元组这种不可变数据类型就可以
d = {("宁一", "喵宁"):"name"}
2、字典 列表区别
字典和列表,都是我们后面编程经常用到的数据类型,他们都能存储多个数据。我们来定义一个字典和一个列表。
#字典,命名为d,字典名字是自定义的。
d = {"name":"宁一","age":"1995-07-12","score":100}
#列表
l = ["宁一","1995-07-12",100]
他们的区别有:
(1)查找方式
字典是根据“键”(key)来查找的,比如上面的"name"、"age"、"score"。
d["name"]
# 输出 '宁一'
列表是根据0 1 2这种下标查找的。
l[0]
# 输出 '宁一'
(2)字典无序、列表有序
字典中的元素,可以随便换位置,不会影响我们查找的结果。
列表中的元素,不能随便换位置,不然会影响我们查找的结果。
比如上面我们定义的字典d、列表l。如果前两个元素互换,来看看查找结果。
d["name"]
# 输出 '宁一'
l[0]
# 输出 "1995-07-12"
3、修改字典元素
通过 key 来修改字典中的元素。继续操作上面定义的字典d
# 将key为"name"对应的值改成"喵宁"
d["name"] = "喵宁"
# 将key为"age"对应的值改成26
d["age"] =26
print(d)
# 输出 {'name': '喵宁', 'age': 26, 'score': 100}
4、删除字典或元素
(1)删除字典中的元素
可以通过del方法,后面字典名加中括号[ ],来通过key删除字典元素。
# 删除"name":"宁一"这个键值对
del d["name"]
print(d)
# 输出 {'age': 26, 'score': 100}
(2)清除字典中的所有元素
字典名后面加clear()函数,就会清空字典。注意清空后字典还在,只是里面没有元素了。
d.clear()
print(d)
# 输出 {}
(3)删除字典
还是使用del方法,后面直接加字典名,就会直接删除字典,跟上面clear()函数要区分开。
#删除字典
del d
print(d)
# 报错 NameError: name 'd' is not defined
5、其他常用操作
(1)len() 长度
计算字典中键值对的个数。
d.len()
# 输出 3
(2)keys()
返回包含所有key的列表。
d.keys()
# 输出 ['name', 'age', 'score']
(3)values()
返回包含所有value的列表。
d.values()
# 输出 ['宁一', '1995-07-12', 100]
(4)items()
将字典转换为列表。
d.items()
# 输出 [('name', '宁一'), ('age', '1995-07-12'), ('score', 100)]
点击关注,Python入门不迷路~