字典
定义
- 键值对:
- 键key就是值value的标致,一个键对应一个值
- key的值不可以重复,value的值可以重复
- key的数据类型只能是不可变数据类型,value的数据类型可以是任意的数据类型
- 元素是键值对的集合就是字典,键值对之间没有顺序且不可重复
创建字典
语法模板:name = {key: value, key: value,…}
- 键和值之间用冒号连接
- 通过花括号来创建字典
- 空字典:name = {}
- 还有一种创建字典的方法(不常用)
- name = dict() #创建一个空字典
- name = dict([(key, value), (key, value), …]) #用以元组列表形式表示的数据来定义一个字典
# 语法模板:name = {key: value, key: value,...}
# - 键和值之间用冒号连接
# - 通过花括号来创建字典
dict_01 = {"name": " 小明",
"age": 18}
print(dict_01)
# - 空字典:name = {}
empty_dict = {}
print(empty_dict)
# - 还有一种创建字典的方法(不常用)
# - name = dict() #创建一个空字典
dict_02 = dict()
print(dict_02)
# - name = dict([(key, value), (key, value), ...]) #用以元组列表形式表示的数据来定义一个字典
my_list = [("name", "zhangsan"), ("address", "hubei"), ("age", 18)]
dict_03 = dict(my_list)
print(dict_03)
输出:
{'name': ' 小明', 'age': 18}
{}
{}
{'name': 'zhangsan', 'address': 'hubei', 'age': 18}
字典的操作函数
- len(),返回字典d中的个数
- min(),返回字典d中键的最小值
- max(),返回字典d中键的最大值
# len(),返回字典d中的个数
my_dict = {"name": "小明",
"number": 123456,
"sex": True,
"age": 15}
print(len(my_dict))
# min(),返回字典d中键的最小值
print(min(my_dict))
# max(),返回字典d中键的最大值
print(max(my_dict))
输出
4
age
sex
字典的操作方法
• 取:
• dict[key]
• dict.get[key,default] 若key存在则返回相关联的值,否则返回一个default,default默认值为none
• 改/增:dict[key] = value
注意:如果字典中存在key,value会覆盖原来的值。如果key不存在,则相当于往字典中添加一个新的键值对• 删:
• dict.pop(key) 返回关联的值,然后删除该键值对
• dic.popitem() 随机从字典中取出一个键值对,以元组(key,value)形式返回,同时将该键值对从字典中删除
• del关键字:del dict[key] 删除指定的键值对
• dict.clear() 清空字典
• 合并字典:dict.update(dict2) 如果存在相同的键,则替换
• dict.keys()/values() 以序列的形式来返回字典中的所有的key/value
• 字典转换
• str(dict)转换成字符串
• dict.items()转换成元组序列
• 判断键值对是否在字典中
• key in dict 若key存在,则返回True
• key not in dict 若key不存在,则返回True
# 取:dict[key]
my_dict = {"name": "小明",
"number": 123456,
"sex": True,
"age": 15}
print(my_dict["name"])
print(my_dict["number"])
# - 改/增:dict[key] = value
# 注意:如果字典中存在key,value会覆盖原来的值。如果key不存在,则相当于往字典中添加一个新的键值对
my_dict["name"] = "张三"
my_dict[1] = 2
print(my_dict)
# - 删:
# - dict.pop(key) 返回关联的值,然后删除该键值对
s = my_dict.pop("age")
print(s)
print(my_dict)
# - del关键字:del dict[key] 删除指定的键值对
del my_dict["name"]
print(my_dict)
# - dict.clear() 清空字典
my_dict.clear()
print(my_dict)
# - 合并字典:dict.update(dict2) 如果存在相同的键,则替换
my_dict01 = {"name": "王五",
"number": 123456,
"sex": True,
"age": 15}
my_dict.update(my_dict01)
print(my_dict)
# - dict.keys()/values() 以序列的形式来返回字典中的所有的key/value
print(my_dict.keys())
print(my_dict.values())
# - 字典转换
# - str(dict)转换成字符串
ss = str(my_dict)
print(type(ss), "--->", ss)
# - dict.items()转换成元组序列
print(my_dict.items())
# - 判断键值对是否在字典中
# - key in dict 若key存在,则返回True
print("name" in my_dict)
# - key not in dict 若key不存在,则返回True
print("name" not in my_dict)
输出:
小明
123456
{'name': '张三', 'number': 123456, 'sex': True, 'age': 15, 1: 2}
15
{'name': '张三', 'number': 123456, 'sex': True, 1: 2}
{'number': 123456, 'sex': True, 1: 2}
{}
{'name': '王五', 'number': 123456, 'sex': True, 'age': 15}
dict_keys(['name', 'number', 'sex', 'age'])
dict_values(['王五', 123456, True, 15])
<class 'str'> ---> {'name': '王五', 'number': 123456, 'sex': True, 'age': 15}
dict_items([('name', '王五'), ('number', 123456), ('sex', True), ('age', 15)])
True
False
字典的遍历
- for name in dict:
操作语句 - for k, v in dict.items():
操作语句
my_dict = {"name": "小明",
"number": 123456,
"sex": True,
"age": 15}
# 字典的遍历
for key in my_dict:
print(key, "---->", my_dict[key])
print("-"*50)
for k, v in my_dict.items():
print(k, "--->>", v)
输出:
name ----> 小明
number ----> 123456
sex ----> True
age ----> 15
--------------------------------------------------
name --->> 小明
number --->> 123456
sex --->> True
age --->> 15