文章目录
- 一、dict和list中copy方法画图加代码注释
- dict浅拷贝
- dict深拷贝
- list浅拷贝
- list深拷贝
- 二、dict中扩展字典长度
- 1.[key] = value
- 2.setdefault
- 3.update
- 三、dict中获取所有的key,获取所有的value,获取所有的item
- keys
- values
- items
- 四、dict中通过一个不存在的key去获取值(要求不报错)
- 1.get
- 2. setdefault
- 五、定义空集合
- 六、set中,求差集,求合集,求交集(要求在原集合上操作)
- 差集
- 合集
- 交集
- 添加一个元素
- add
- 删除一个元素(使用多种方法)
- pop
- remove
- discard
- difference_update
- 七、数据类型转换:
- 1.将浮点型,字符串转换成整型
- 2.将整数,字符串转成浮点型
- 3.将二进制,八进制,16进制转成10进制
- 4.将10进制转换成,二进制,八进制,16进制
- 5.将字符串转换为字节
- 6.将字节转换成字符串
- 7.将ascii码转换为字符串
- 8.将字符串转换成ascii码
一、dict和list中copy方法画图加代码注释
dict浅拷贝
dict浅拷贝,dict_data1和dict_data2两者是独立的,但是里面的元素指向同一个,所以一个改变后,另一个也会随之而变
dict_data = {1: [1, 2, 3]}
dict_data2 = dict_data.copy()
print(dict_data2)
print(id(dict_data[1]))
print(id(dict_data2[1]))
print(id(dict_data))
print(id(dict_data2))
dict_data[1][1] = 8
print(dict_data)
print(dict_data2)
#输出结果为
{1: [1, 2, 3]}
2501838676224
2501838676224
2501837218560
2501837218752
{1: [1, 8, 3]}
{1: [1, 8, 3]}
dict深拷贝
dict深拷贝完全拷贝,两者完全独立,即使改变一个,另一个仍保持不变
dict_data = {1: [1, 2, 3]}
dict_data2 = copy.deepcopy(dict_data)
print(dict_data2)
print(id(dict_data[1]))
print(id(dict_data2[1]))
print(id(dict_data))
print(id(dict_data2))
dict_data[1][1] = 8
print(dict_data)
print(dict_data2)
#输出结果为
{1: [1, 2, 3]}
2472985995776
2472985993344
2472980210432
2472984590528
{1: [1, 8, 3]}
{1: [1, 2, 3]}
list浅拷贝
list浅拷贝中list_data1和list_data2是两个独立个体,列表最外层改变,另一个不会改变;列表最内层改变,另一个会做出相应改变
list_data = [1, [2, 3]]
list_data2 = list_data.copy()
print(list_data2)
print(id(list_data))
print(id(list_data2))
print(id(list_data[0]))
print(id(list_data[0]))
print(id(list_data[1]))
print(id(list_data2[1]))
list_data[1][0] = 8
list_data[0] = 8
print(list_data)
print(list_data2)
#输出结果为
[1, [2, 3]]
1698946565248
1698946649408
1698943494448
1698943494448
1698946654656
1698946654656
[8, [8, 3]]
[1, [8, 3]]
list深拷贝
list深拷贝中list_data1和list_data2是两个独立个体,里面的元素无论怎么变,另一个都不会变
list_data = [1, [2, 3]]
list_data2 = copy.deepcopy(list_data)
print(list_data2)
print(id(list_data))
print(id(list_data2))
print(id(list_data2[0]))
print(id(list_data2[0]))
print(id(list_data[1]))
print(id(list_data2[1]))
list_data[1][0] = 8
print(list_data)
print(list_data2)
#输出结果为
[1, [8, 3]]
1999515586368
1999515586112
1999508957488
1999508957488
1999515593024
1999515591232
[1, [8, 3]]
[1, [2, 3]]
二、dict中扩展字典长度
1.[key] = value
直接使用[key] = value即可添加
dict_data = {1: 2, 2: 3}
dict_data[3] = 4
print(dict_data)
#输出结果为
{1: 2, 2: 3, 3: 4}
2.setdefault
使用setdefault插入一个键和键值
dict_data = {1: 1, 2: 2, 3: 4}
dict_data.setdefault(4, 5)
print(dict_data)
#输出结果为
{1: 1, 2: 2, 3: 4, 4: 5}
3.update
使用update从字典中迭代更新
dict_data = {1: 1, 2: 2, 3: 4}
dict_data1 = {5: 6}
dict_data.update(dict_data1)
print(dict_data)
#输出结果为
{1: 1, 2: 2, 3: 4, 5: 6}
三、dict中获取所有的key,获取所有的value,获取所有的item
keys
dict_data = {1: 2, 2: 3, 3: 4}
data = dict_data.keys()
print(data)
#输出结果为
dict_keys([1, 2, 3])
values
dict_data = {1: 1, 2: 2, 3: 4}
data = dict_data.values()
print(dict_data, data)
#输出结果为
{1: 1, 2: 2, 3: 4} dict_values([1, 2, 4])
items
dict_data = {1: 1, 2: 2, 3: 3}
data = dict_data.items()
print(data)
结果
dict_items([(1, 1), (2, 2), (3, 3)])
四、dict中通过一个不存在的key去获取值(要求不报错)
1.get
如果 key 在字典中,则返回 key 的值,否则返回默认值。
dict_data = {1: 1, 2: 2}
data = dict_data.get(3)
print(data)
#输出结果为
None
2. setdefault
dict_data = {1: 1, 2: 2, 3: 4}
data = dict_data.setdefault(4)
print(data)
#输出结果为
None
五、定义空集合
data = set()
print(data, type(data))
#输出结果为
set() <class 'set'>
六、set中,求差集,求合集,求交集(要求在原集合上操作)
差集
set_data = {1, 3, 5, 6, 7}
set_data1 = {1, 2, 3, 5, 6}
set_data.symmetric_difference_update(set_data1)
print(set_data)
#输出结果为
{2, 7}
合集
set_data = {1, 3, 5, 6, 7}
set_data1 = {1, 2, 3, 5, 6}
set_data.update(set_data1)
print(set_data)
#输出结果为
{1, 2, 3, 5, 6, 7}
交集
set_data = {1, 3, 5}
set_data1 = {1, 2, 3, 4}
set_data.intersection_update(set_data1)
print(set_data)
#输出结果为
{1, 3}
添加一个元素
add
将元素添加到集合中
set_data = {1, 3}
set_data.add(2)
print(set_data)
#输出结果为
{1, 2, 3}
删除一个元素(使用多种方法)
pop
删除并返回第一个元素
set_data = {1, 3, 4, 5, 6, 7}
data = set_data.pop()
print(data, set_data)
#输出结果为
1 {2, 3, 4, 5, 6, 7}
remove
从集合中删除元素;它必须是成员。
set_data = {1, 3, 4, 5, 7, 8}
set_data.remove(1)
print(set_data)
#输出结果为
{3, 4, 5, 7, 8}
discard
如果元素是成员,则从集合中删除该元素。
set_data = {1, 3, 5}
set_data.discard(1)
print(set_data)
#输出结果为
{3, 5}
difference_update
从此集中删除另一组的所有元素。
set_data = {1, 3, 5}
set_data1 = {1}
set_data.difference_update(set_data1)
print(set_data)
#输出结果为
{3, 5}
七、数据类型转换:
1.将浮点型,字符串转换成整型
print(int(1.2))
print(int('1'))
#输出结果为
1
1
2.将整数,字符串转成浮点型
print(float(1))
print(float('1'))
#输出结果为
1.0
1.0
3.将二进制,八进制,16进制转成10进制
print(int(0b100))
print(int(0o100))
print(int(0x100))
#输出结果为
4
64
256
4.将10进制转换成,二进制,八进制,16进制
print(bin(4))
print(oct(64))
print(hex(256))
#输出结果为
0b100
0o100
0x100
5.将字符串转换为字节
print(bytes("瑶", encoding="UTF-8"))
#输出结果为
b'\xe7\x91\xb6'
6.将字节转换成字符串
print(str(b'\xe7\x91\xb6'', encoding="UTF-8"))
#输出结果为
瑶
7.将ascii码转换为字符串
print(chr(99))
#输出结果为
c
8.将字符串转换成ascii码
print(ord(str('a')))
#输出结果为
97