列表深淺拷貝
集合淺拷貝:資料半共享,淺拷貝只能拷貝最外層,修改內層則原列表和新列表都會變化,通過列表的內建方法copy就可以實現
s = [1, '拷貝出的列表s2和列表s結果一致: [1, 'alex', 'alvin']alex
', '
alvin']
s2 =s.copy()
print(s2)
s = [[1,2], 'alex', 'alvin']把列表s3中的元素1修改為'hzw'後,原列表並未受影響s3 = s.copy()
s3[0][1] = 3
s3[1] = "hzw"
print(s3)
print(s)
結果:[[1, 3], 'hzw', 'alvin']
[[1, 3], 'alex', 'alvin']
將s3中第乙個元素[1,2]中的2修改為'3'時,原列表中也跟著變了
深拷貝:資料完全不共享,是指將原列表完全轉殖乙份新的,copy.deepcopy()方法來拷貝列表
h1 = ['['h', 123, [15000, 7001]]h', 123,[15000,9000]]
x1 =copy.deepcopy(h1)
x1[0] = 'x'
x1[1] = 666h1[2][1] -= 1999x1[2][1] -= 5000
(h1)
print(x1)
結果:
['x', 666, [15000, 4000]]
集合是無序的,不可重複的資料集合,集合裡面的每個元素必須是可雜湊的(不可變的資料型別),但是集合是不可雜湊的,所以集合做不了字典的鍵
作用: 1、去重
2、關係測試, 交集\差集\並集\反向(對稱)差集
集合的建立方式:
1.通過set()建立集合,格式 :集合名字=set(物件)
2.通過{}建立
#集合建立
s = set('
saaaa li')
s1 = ['
alvin
', '
ee', '
alvin']
(s)s2 =set(s1)
(s2)
s3 = set([1,2,3,'
qqqqq'])
(s3)
a = set([1,2,3,4,5])
b = set([4,5,6,7,8])
#取交集
(a.intersection(b))
print(a&b)
#取並集
(a.union(b))
print(a |b)#差集
(a.difference(b))
print(a-b)
(b.difference(a))
print(b-a)
#反向交集
(a.symmetric_difference(b))
print(a^b)
#父集,超集
(a.issuperset(b))
print(a.issubset(b))
python 基礎知識五 切片
切片 slice 操作符,取前3個元素,用一行 就可以完成切片 l 0 3 adam lisa bart l 0 3 表示,從索引0開始取,直到索引3為止,但不包括索引3。即索引0,1,2,正好是3個元素。如果第乙個索引是0,還可以省略 l 3 adam lisa bart 也可以從索引1開始,取出...
Python學習基礎知識
1 python中的布林運算 1 python把0 空字串 和none看成 false,其他數值和非空字串都看成 true 2 python直譯器在做布林運算時,只要能提前確定計算結果,它就不會往後算了,直接返回結果。2 python中的list 新增 2 用list的 insert 方法,它接受兩...
Python基礎知識學習
anaconda環境配置 anaconda pycharm環境 參考 直譯器 參考 和 python入門 anaconda和pycharm的安裝和配置 print and input print hello,world x 12 print x s hello y len s print the l...