Python__Day04集合和函式,以及前面的變數總結
阿新 • • 發佈:2018-12-11
資料型別
有: 字串(str) 數字(int) 列表(list) 元組(tuple) 字典(dict)
不可變型別
(重新賦值會在記憶體當中開闢新的空間)分為: str,int,tuple
可變型別
分為: list,dict 訪問順序分為:
直接訪問:int 順序訪問分為:字串,列表,元組 對映訪問分為:字典(key,value)
集合
定義:由不同元素組成的集合,集合中是一組無序排列的可hash值,可以作為字典的key,集合的名字用type的方法輸出是set 1.不同元素組成 2.集合是無序的 3.集合終不改的元素只能是不可變型別(str,int,tuple) 特性: 1.集合的目的是將不同的值存放在一起,不同的集合間用來做關係運算,無需糾結於集合中某個值.
s = {1,2,3,4,5,6)#看著像字典,但是字典的定義是必須有key和value.用這點來區分集合和字典
2.集合有預設去重複的功能(去除重複的元素 )
集合當中的方法
新增
s = {1,2,3,5}
s.add("d")
清除
s.clear()
複製
s.copy()
隨機刪除
s.pop()#刪除一個值
指定刪除一個值
s.remove(1)#刪除指定的值,如果這個值不存在就會報錯
指定刪除一個值,如果這個值不存在也不會報錯
s.doscard("123")
求交集
s = {"123","456","789"} s1 = {"123","456"} s2 = s.intersection(s1)#求兩個集合中相同的元素,可以傳多個引數,多個集合取到相同的元素 s2 = s&s1#這是另外的一種寫法,效果一樣 print(s2)
求並集(求兩個集合共有的元素,並把重複的元素去除)
s = {"123","456","789"}
s1 = {"123","456"}
print(s.union(s1))#兩種寫法
print(s|s1)
求差集
pring(s-s1)#輸出的結果是:s裡面有的,而s1裡面沒有的元素.
s.difference(s1)
交叉補集
print(s. symmetric_difference(s1)#求出兩個集合裡面不相同的元素.
print(s^s1)#簡便寫法
求出差集後複製給左邊
s = {"123", "456", "789"} s1 = {"123", "456","789"} s3 = {"123", "456", "789", "1234"} s3.difference_update(s1) print(s3)
求出交集後重新複製給左邊
s = {"123", "456", "789"}
s1 = {"123", "456","789"}
s3 = {"123", "456", "789", "1234"}
s3.intersection_update(s1)
print(s3)
兩個集合做交集運算,如果發現沒有重複的元素,則返回true,有就返回false
s = {"123", "456", "789"}
s1 = {"123", "456","789"}
s3 = {"123", "456", "789", "1234"}
s4 = {"abc","bcd"}
print(s.isdisjoint(s4))
右邊包含左邊的嗎?包含就返回true(s.issubset(s3)),S3是右邊,s是左邊
s = {"123", "456", "789"}
s1 = {"123", "456","789"}
s3 = {"123", "456", "789", "1234"}
s4 = {"abc","bcd"}
print(s.issubset(s3))#s是s3的子集嗎?是就返回true,其實就是說S3裡面包含S嗎?包含就返回true
和上面的方法正好反過來,判斷父集
print(s3.issuperset(s))
s1.update(s3)#S1就會具備它和s3相比所沒有的一些元素
update()更新方法
集合是一個可變引數,我們可以刪除,新增元素. 這裡有一個不可變的集合 定義方法是:s = frozenset(“hello”) 定義完成後,這個集合沒有add和remove方法
字串格式化,每有一個百分號,就必須傳一個值在裡面.
mgs = 'my name is %s'%'XGZ'
print(mgs)
print("my name is %s ,my hobby is %s"%("xgz","eat"))