目录
概念:
dict的定义格式:
dict的使用方法:
定义空字典的两种方法:
dict.clear:
copy:
copy:浅拷贝
deepcopy:深拷贝
get:
items:
keys:
popitem:
setdefault:
update:
values:
dict----dictionary 字典:
根据关键字去获取内容
关键字不能重复
关键字必须是不可变的数据类型
定义字典:根据key去取value
字典中的元素必须具备两个部分:key和value
{元素1, 元素2, 元素3., .......}:可以有多个元素,元素之间也是用逗号来分隔
元素分解:key 和 value
写法:key: value
dict_data = {}
dict_data1 = dict()
print(dict_data, dict_data1)
clear(...)
D.clear() -> None. Remove all items from D.
清空操作:移除原列表中的所有元素;
案例:定义一个字典,并且移除他其中的所有元素
dict_data = {1: 1, 1.1: 1.1, 1 + 2j: 1 + 2j}
dict_data.clear()
print(dict_data)
实验结果为:
copy(...)
D.copy() -> a shallow copy of D
使用它前需要先导入深拷贝库:from copy import deepcopy
两者区别:
总结:浅拷贝只复制某个对象的引用,而不复制对象本身,新旧对象还是共享同一块内存。
深拷贝会创造一个一模一样的对象,新对象和原对象不共享内存,修改新对象不会改变原对对象。
案例:
# 导入深拷贝库
from copy import deepcopy
dict_data = {1: [1, 2]}
data1 = dict_data.copy()
print(id(dict_data))
print(id(dict_data[1]))
print(id(dict_data[1][0]))
print(id(dict_data[1][1]))
print(id(data1))
print(id(data1[1]))
print(id(data1[1][0]))
print(id(data1[1][1]))
data2 = deepcopy(dict_data)
print(id(data2))
print(id(data2[1]))
print(id(data2[1][0]))
print(id(data2[1][1]))
运行结果:
get(self, key, default=None, /)
Return the value for key if key is in the dictionary, else default.
取值:取key为多少的vlue值
例如:定义一个字典,取出他key值为1的vlue值,返回字典中key的vlue值
dict_data = {1: 2, 1.1: 1.1, 1 + 2j: 1 + 2j}
print(dict_data.get(1))
输出结果:
items(...)
D.items() -> a set-like object providing a view on D's items
取元素:取列表中的元素
案例:定义一个字典,取出他列表中的所有元素
dict_data = {1: 2, 2: 3, 3: 4, 4: 5, 5: 6}
print(dict_data.items())
输出结果:
keys(...)
| D.keys() -> a set-like object providing a view on D's keys
取列表中的key值
案例:定义一个字典,取出他列表中所有的key值
dict_data = {1: 2, 2: 3, 3: 4, 4: 5, 5: 6}
print(dict_data.keys())
输出结果:
popitem(self, /)
| Remove and return a (key, value) pair as a 2-tuple.
|
| Pairs are returned in LIFO (last-in, first-out) order.
| Raises KeyError if the dict is empty.
随机返回并删除字典中的一对键和值,若字典为空字典,则返回keyerror
案例:定义一个字典,并随机删除其中一对键和值
dict_data = {1: 2, 2: 3, 3: 4, 4: 5, 5: 6}
print(dict_data.popitem())
print(dict_data)
输出结果:
setdefault(self, key, default=None, /)
| Insert key with a value of default if key is not in the dictionary.
|
| Return the value for key if key is in the dictionary, else default.
设置默认值:若字典中没有该key值,在原字典中则插入key,默认value值为None。
若字典中存在key值,则返回它的value值
案例:定义一个字典,并插入一个key为9的元素,且输出key为1的value值
dict_data = {1: 2, 2: 3, 3: 4, 4: 5, 5: 6}
dict_data.setdefault(9)
print(dict_data)
print(dict_data.setdefault(1))
输出结果:
update(...)
| D.update([E, ]**F) -> None. Update D from dict/iterable E and F.
| If E is present and has a .keys() method, then does: for k in E: D[k] = E[k]
| If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v
| In either case, this is followed by: for k in F: D[k] = F[k]
更新:在执行 update() 方法时,如果被更新的字典中己包含对应的键值对,那么原 value 会被覆盖;如果被更新的字典中不包含对应的键值对,则该键值对被添加进去。
案例:定义一个字典,并更新key为1的值,且增加一个新的键值对
dict_data = {1: 2, 2: 3, 3: 4, 4: 5, 5: 6}
dict_data.update({1: 4, 9: 10})
print(dict_data)
输出结果:
values(...)
| D.values() -> an object providing a view on D's values
取该字典中的值
案例:定义一个字典,取出他中所有的value值
dict_data = {1: 2, 2: 3, 3: 4, 4: 5, 5: 6}
print(dict_data.values())
输出结果:
扩展内容:
1.用for循环去获取dict的key,value,(key,value)以及key和value
dict_data = {1: 2, 2: 3, 3: 4, 4: 5, 5: 6}
for key, value in dict_data.items():
print(key, value, (key, value))
for i in dict_data.keys():
print(i)
for j in dict_data.values():
print(j)
2.使用for循环去获取列表的下标及下标的对应的值
list_data = [1, 'HELLO', 2.2]
for index, value in enumerate(list_data):
print(index, value)
输出结果: