python學習網站推薦
一、set()
set:類似dict,是一組key的集合,不存儲value
本質:無序和無重複元素的集合
1.創建
#創建set需要一個list或者tuple或者dict作爲輸入集合
#重複元素在set中會自動被過濾
s1 = set([1,2,3,4,5,3,4,5])
print(s1)
s2 = set((1,2,3,3,2,1))
print(s2)
s3 = set({1:"good", 2:"nice"})
print(s3)
2.添加
s4 = set([1,2,3,4,5])
s4.add(6)
s4.add(3) #可以添加重複的,但是不會有效果
#s4.add([7,8,9]) #set的元素不能是列表,因爲列表是可變的
s4.add((7,8,9))
#s4.add({1:"a"}) #set的元素不能是字典,因爲字典是可變的
print(s4)
3.插入整個list、tuple、字符串,打碎插入
s5 = set([1,2,3,4,5])
s5.update([6,7,8])
s5.update((9,10))
s5.update("sunck")
print(s5)
4.刪除
s6 = set([1,2,3,4,5])
s6.remove(3)
print(s6)
5.遍歷
s7 = set([1,2,3,4,5])
for i in s7:
print(i)
#set沒有索引的
#print(s7[3])
for index, data in enumerate(s7):
print(index, data)
s8 = set([1,2,3])
s9 = set([2,3,4])
6.交集
a1 = s8 & s9
print(a1)
print(type(a1))
7.並集
a2 = s8 | s9
print(a2)
print(type(a2))
二、類型轉換
1.list去重複
l = [1,2,3,4,3,4,5,6]
'''
s = set(l)
l = list(s)
print(l)
'''
l = list(set(l))
print(l)
2.類型轉換
(1)list–>set
l1 = [1,2,3,4,5,3,4,5]
s1 = set(l1)
(2)tuple–>set
t2 = (1,2,3,4,3,2)
s2 = set(t2)
(3)set–>list
s3 = {1,2,3,4}
l3 = list(s3)
print(l3)
(4)set–>tuple
s4 = {2,3,4,5}
t4 = tuple(s4)
print(t4)
三、迭代器
from collections import Iterable
from collections import Iterator
可迭代對象:可以直接作用於for循環的對象統稱爲可迭代對象(Iterable)。可以用isinstance()去判斷一個對象是否是Iterable對象
可以直接作用於for的數據類型一般分兩種
1、集合數據類型,如list、tuple、dict、set、string
2、是generator,包括生成器和帶yield的generator function
print(isinstance([], Iterable))
print(isinstance((), Iterable))
print(isinstance({}, Iterable))
print(isinstance("", Iterable))
print(isinstance((x for x in range(10)), Iterable))
print(isinstance(1, Iterable))
迭代器:不但可以作用於for循環,還可以被next()函數不斷調用並返回下一個值,直到最後跑出一個StopIteration錯誤表示無法繼續返回下一個值
可以被next()函數調用並不斷返回下一個值的對象稱爲迭代器(Iterator對象)
可以使用isinstance()函數判斷一個對象是否是Iterator對象
print(isinstance([], Iterator))
print(isinstance((), Iterator))
print(isinstance({}, Iterator))
print(isinstance("", Iterator))
print(isinstance((x for x in range(10)), Iterator))
l = (x for x in [23,4,5,64,3435])
print(next(l))
print(next(l))
print(next(l))
print(next(l))
print(next(l))
#print(next(l))
轉成Iterator對象
a = iter([1,2,3,4,5])
print(next(a))
print(next(a))
print(isinstance(iter([]), Iterator))
print(isinstance(iter(()), Iterator))
print(isinstance(iter({}), Iterator))
print(isinstance(iter(''), Iterator))
四、函數概述
認識函數:在一個完整的項目中,某些功能會反覆的使用。那麼會將功能封裝成函數,當我們要使用功能的時候直接調用函數即可
本質:函數就是對功能的封裝
優點
1、簡化代碼結構,增加了代碼的複用度(重複使用的程度)
2、如果想修改某些功能或者調試某個BUG,還需要修改對應的函數即可
1.定義函數:
格式:
def 函數名(參數列表):
語句
return 表達式
def:函數代碼塊以def關鍵字開始
函數名:遵循標識符規則
():是參數列表的開始和結束
參數列表(參數1,參數2,……,參數n):任何傳入函數的參數和變量必須放在圓括號之間,用逗號分隔。函數從函數的調用者哪裏獲取的信息
冒號:函數內容(封裝的功能)以冒號開始,並且縮進
語句:函數封裝的功能
return:一般用於結束函數,並返回信息給函數的調用者
表達式:即爲要返回給函數的調用者的信息,
注意:最後的return 表達式,可以不寫,相當於return None
凱 = "帥"
print(凱)
函數的調用
格式:函數名(參數列表)
函數名:是要使用的功能的函數函數名字
參數列表:函數的調用者給函數傳遞的信息,如果沒有參數,小括號也不能省略
函數調用的本質:實參給形參賦值的過程
五、定義了一個無參無返回值的函數
def myPrint():
print("sunck is a very good man!")
print("sunck is a nice man!")
print("sunck is a handsome man!")
myPrint()
myPrint()
myPrint()
myPrint()
myPrint()
六、函數的參數
需求:編寫一個函數,給函數一個字符串和一個年齡,在函數內部打印出來
形參(形式參數):定義函數時小括號中的變量,本質是變量
參數必須按順序傳遞,個數目前要對應
def myPrint(str, age, hoby):
print(str, age)
def myPrint(str, age):
print(str, age)
實參(實際參數):調用函數時給函數傳遞的數據,本質是值
myPrint("sunck is a good man", 18)