一、相关操作
字典不支持加法、乘法和比较大小的运算
举例:
print({'a': 10} + {'b': 20})
print({'a': 100} > {'b': 10})
运行结果:
TypeError: unsupported operand type(s) for +: 'dict' and 'dict'
TypeError: '>' not supported between instances of 'dict' and 'dict'
判断数据本身是否相等: ==,!=
print({'a': 10, 'b': 20} == {'b': 20, 'a': 10})
True
is - 判断两个数据的地址是否相等
举例:
a = {'a': 10}
b = {'a': 10}
c = a
print(a == b)
print(a is b)
print(a is c)
运行结果:
True
False
True
in 和 not in
key in 字典 - 判断字典中是否有指定的key
举例:
dict1 = {'a': 10, 'b': 20, 'c': 30}
print(10 in dict1)
print('b' in dict1)
运行结果:
False
True
相关函数: len\dict
len(字典) - 获取字典中键值对的个数
举例:
dict1 = {'a': 10, 'b': 20, 'c': 30}
print(len(dict1))
运行结果:
3
dict(数据) - 将其他数据转换成字典(数据的要求:
- 序列
- 序列中的元素还是序列
- 内部的序列有且只有两个元素, 第一个元素不可变)
举例:
list1 = ['ab', (10, 20), ['name', '张三']]
print(dict(list1))
运行结果:
{'a': 'b', 10: 20, 'name': '张三'}
将字典转换成其他数据
- 将字典转换成列表/元组 - 将字典的key作为列表/元组的元素
- 将字典转换成字符串
- 将字典转换成布尔
举例:
stu = {'name': '小明', 'age': 18, 'score': 100}
# 1)将字典转换成列表/元组 - 将字典的key作为列表/元组的元素
print(list(stu))
print(tuple(stu))
# 2)将字典转换成字符串
print(str(stu))
# 3)将字典转换成布尔
print(bool({}))
print(bool(stu))
运行结果:
['name', 'age', 'score']
('name', 'age', 'score')
{'name': '小明', 'age': 18, 'score': 100}
False
True
二、相关方法
字典.clear()
举例:
stu = {'name': '小明', 'age': 18, 'score': 100}
stu.clear()
print(stu)
运行结果:
{}
字典.copy()
举例:
stu = {'name': '小明', 'age': 18, 'score': 100}
stu2 = stu.copy()
print(stu2)
stu['name'] = '小花'
print(stu2)
运行结果:
{'name': '小明', 'age': 18, 'score': 100}
{'name': '小明', 'age': 18, 'score': 100}
dict.fromkeys(序列, 默认值=None)
创建一个新的字典,序列中所有的元素会作为新字典的key,默认值是所有key对应的值
举例:
new_dict = dict.fromkeys('abc')
print(new_dict)
new_dict = dict.fromkeys(['name', 'age', 'sex'], 0)
print(new_dict)
new_dict = dict.fromkeys(['name', 'age', 'sex'], ['张三', 19, '男'])
print(new_dict)
运行结果:
{'a': None, 'b': None, 'c': None}
{'name': 0, 'age': 0, 'sex': 0}
{'name': ['张三', 19, '男'], 'age': ['张三', 19, '男'], 'sex': ['张三', 19, '男']}
字典.items()、字典.keys()、字典.values()
举例:
stu = {'name': '小明', 'age': 18, 'score': 100}
print(stu.items())
print(stu.keys())
print(stu.values())
运行结果:
dict_items([('name', '小明'), ('age', 18), ('score', 100)])
dict_keys(['name', 'age', 'score'])
dict_values(['小明', 18, 100])
字典.setdefault(key, value)
在字典中添加键值对(单纯的添加键值对,不会修改)
举例:
stu = {'name': '小明', 'age': 18, 'score': 100}
stu.setdefault('weight', 100)
print(stu)
stu.setdefault('name', 'asd')
print(stu)
运行结果:
{'name': '小明', 'age': 18, 'score': 100, 'weight': 100}
{'name': '小明', 'age': 18, 'score': 100, 'weight': 100}
字典1.update(字典2)
将字典2中所有的键值对全部添加到字典1中
举例:
stu.update({'a': 10, 'b': 20})
print(stu)
运行结果:
{'name': '小明', 'age': 18, 'score': 100, 'weight': 100, 'a': 10, 'b': 20}