1. 程式人生 > >Python__Day04集合和函式,以及前面的變數總結

Python__Day04集合和函式,以及前面的變數總結

資料型別

有: 字串(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"))