1.淺拷貝和深拷貝
1.import copy
copy.copy(對(duì)象) - 淺拷貝 (直接拷貝元素的值產(chǎn)生一個(gè)新的地址)
copy.deepcopy(對(duì)象) - 深拷貝(不會(huì)直接復(fù)制地址,而是將地址對(duì)應(yīng)的值拷貝一份產(chǎn)生新的地址)
numbers1 = [1, 2, 3]
numbers2 = [10, 20, 30]
list1 = [numbers1, numbers2]
print('1.淺拷貝:')
list2 = list1.copy()
print('修改前l(fā)ist1:', list1)
print('修改前l(fā)ist2:', list2)
print('針對(duì)list1進(jìn)行修改')
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('修改前l(fā)ist1:', list1)
print('修改前l(fā)ist2:', list2)
print('針對(duì)list1進(jìn)行修改')
list1.append(111)
list1[0].append(100)
print('修改后list1:', list1)
print('修改后list2:', list2)
2.元祖
1.什么是元祖(tuple)
元祖就是不可變的列表吉挣。(有序庸蔼,不可變)
有序 - 可以通過(guò)下標(biāo)獲取元素
不可變 - 不支持增齐蔽、刪休讳、改
2.元祖的字面量: 通過(guò)小括號(hào)將多個(gè)元素括起來(lái)耸序,多個(gè)元素之間用逗號(hào)隔開
- a.只要一個(gè)元素的元祖: 在元素的后面必須加一個(gè)逗號(hào)
- b.直接將多個(gè)數(shù)據(jù)用逗號(hào)隔開拟逮,不用括號(hào)括起來(lái)掉伏。還是一個(gè)元祖值
- c.獲取元祖元素 可以通過(guò)變量個(gè)數(shù)和元祖元素個(gè)數(shù)保持一致來(lái)獲取元祖中的每個(gè)元素
通過(guò)在變量名前加,獲取沒有的變量獲取到的元素的剩下的部分。以列表的形式返回
3.獲取元祖元素和列表獲取列表回去列表元素一模一樣
4.相關(guān)運(yùn)算和列表一樣
+, *, in/not in, len(), tuple(), max(), min()
5.元祖相關(guān)的方法: 只有列表中的count和index
3.字典
1.什么是字典(dict)
字典是python中內(nèi)置的容器類的數(shù)據(jù)類型,可變两曼,無(wú)序的皂甘。字典的元素是鍵值對(duì)
2.字典的字面量:使用大括號(hào)括起來(lái),大括號(hào)中是鍵值對(duì)悼凑,多個(gè)鍵值對(duì)之間用逗號(hào)隔開
鍵值對(duì)- 鍵:值
鍵(key) - 不可變的偿枕;唯一的 (一般使用字符串作為key)
值(value) - 任何類型的數(shù)據(jù)
- 列表和字典不能作為key
- key是唯一的
什么時(shí)候使用字典: - 如果一個(gè)容器里面存儲(chǔ)的數(shù)據(jù)是不同意義的數(shù)據(jù)(數(shù)據(jù)之間需要區(qū)分),就使用字典
4.字典的增刪改查
1.查(獲取字典的值)
a.獲取單個(gè)值
字典[key] - 獲取字典中key對(duì)應(yīng)的值 (注意:如果key不存在,會(huì)報(bào)錯(cuò):KeyError)
字典.get(key) - 獲取字典中key對(duì)應(yīng)的值 (如果key不存在户辫,不會(huì)報(bào)錯(cuò)渐夸,并且會(huì)返回一個(gè)默認(rèn)值None)
None是python中的關(guān)鍵字,表示一個(gè)特殊值渔欢,(沒有墓塌、空的意思)
b.遍歷
- 直接遍歷字典拿到的是字典中所有的key
2.增
(添加鍵值對(duì))
dict1 = {'a': 100}
dict1['b'] = 200
print(dict1)
"""
字典1.update(序列) - 將序列中的元素轉(zhuǎn)換成鍵值對(duì),然后再添加到字典1中
注意:在這兒的序列要求是能夠轉(zhuǎn)換成字典的序列奥额。序列中的元素是只有兩個(gè)元素的小序列
當(dāng)key值有重名的時(shí)候苫幢,會(huì)用序列中鍵值對(duì)對(duì)應(yīng)的值,更新原字典的key對(duì)應(yīng)的值
3.改(修改key對(duì)應(yīng)的值)
字典[key] = 值 - 當(dāng)key存在的時(shí)候垫挨,就是修改key對(duì)應(yīng)的值.
4.刪(刪除鍵值對(duì))
- a. del 字典[key] - 刪除字典中key對(duì)應(yīng)的鍵值對(duì)
- b.字典.pop(key) - 取出字典中key對(duì)應(yīng)的值(刪除整個(gè)鍵值對(duì))
5.字典相關(guān)的運(yùn)算和方法
1.字典不支持+和*
1. in 和 not in
key in 字典 - 判斷字典中是否存在指定的key