1.浅拷贝和深拷贝
1.import copy
copy.copy(对象) - 浅拷贝 (直接拷贝元素的值产生一个新的地址)
copy.deepcopy(对象) - 深拷贝(不会直接复制地址,而是将地址对应的值拷贝一份产生新的地址)
numbers1 = [1, 2, 3]
numbers2 = [10, 20, 30]
list1 = [numbers1, numbers2]
print('1.浅拷贝:')
list2 = list1.copy()
print('修改前list1:', list1)
print('修改前list2:', list2)
print('针对list1进行修改')
list1.append(111)
list1[0].append(100)
print('修改后list1:', list1)
print('修改后list2:', list2)
numbers1 = [1, 2, 3]
numbers2 = [10, 20, 30]
list1 = [numbers1, numbers2]
print('2.深拷贝')
list2 = copy.deepcopy(list1)
print('修改前list1:', list1)
print('修改前list2:', list2)
print('针对list1进行修改')
list1.append(111)
list1[0].append(100)
print('修改后list1:', list1)
print('修改后list2:', list2)
2.元祖
1.什么是元祖(tuple)
元祖就是不可变的列表。(有序,不可变)
有序 - 可以通过下标获取元素
不可变 - 不支持增、删、改
2.元祖的字面量: 通过小括号将多个元素括起来,多个元素之间用逗号隔开
- a.只要一个元素的元祖: 在元素的后面必须加一个逗号
- b.直接将多个数据用逗号隔开,不用括号括起来。还是一个元祖值
- c.获取元祖元素 可以通过变量个数和元祖元素个数保持一致来获取元祖中的每个元素
通过在变量名前加,获取没有的变量获取到的元素的剩下的部分。以列表的形式返回
3.获取元祖元素和列表获取列表回去列表元素一模一样
4.相关运算和列表一样
+, *, in/not in, len(), tuple(), max(), min()
5.元祖相关的方法: 只有列表中的count和index
3.字典
1.什么是字典(dict)
字典是python中内置的容器类的数据类型,可变,无序的。字典的元素是键值对
2.字典的字面量:使用大括号括起来,大括号中是键值对,多个键值对之间用逗号隔开
键值对- 键:值
键(key) - 不可变的;唯一的 (一般使用字符串作为key)
值(value) - 任何类型的数据
- 列表和字典不能作为key
- key是唯一的
什么时候使用字典: - 如果一个容器里面存储的数据是不同意义的数据(数据之间需要区分),就使用字典
4.字典的增删改查
1.查(获取字典的值)
a.获取单个值
字典[key] - 获取字典中key对应的值 (注意:如果key不存在,会报错:KeyError)
字典.get(key) - 获取字典中key对应的值 (如果key不存在,不会报错,并且会返回一个默认值None)
None是python中的关键字,表示一个特殊值,(没有、空的意思)
b.遍历
- 直接遍历字典拿到的是字典中所有的key
2.增
(添加键值对)
dict1 = {'a': 100}
dict1['b'] = 200
print(dict1)
"""
字典1.update(序列) - 将序列中的元素转换成键值对,然后再添加到字典1中
注意:在这儿的序列要求是能够转换成字典的序列。序列中的元素是只有两个元素的小序列
当key值有重名的时候,会用序列中键值对对应的值,更新原字典的key对应的值
3.改(修改key对应的值)
字典[key] = 值 - 当key存在的时候,就是修改key对应的值.
4.删(删除键值对)
- a. del 字典[key] - 删除字典中key对应的键值对
- b.字典.pop(key) - 取出字典中key对应的值(删除整个键值对)
5.字典相关的运算和方法
1.字典不支持+和*
1. in 和 not in
key in 字典 - 判断字典中是否存在指定的key
网友评论