若是想要表達多個「事物」,可使用列表。
name = ['a','b','c']html
增:python
name.append('c') #在後面增長一個c name.insert(1,'d') #增長到b前面
刪:併發
name.remove('f') #刪除f del name[1] #刪除編號1 name.pop(1) #刪除編號1,若是不寫那麼就刪除第一個。pop還能夠將刪除的值提取出來,從新賦值。 name.clear() #刪除列表。
改:app
name[2]='b' #將b更改成f
查:函數
print(name[2],name[0]) #取號碼進行識別 print(name[1:3]) #取1和2的值,3爲結束位。切片功能 print(name[-1]) #取最後一個值 print(name[-2:]) #取最後兩個值
以名字來查詢:spa
print(name.index('a')) #以姓名方式來查找用戶的編號 print(name.count('a')) #查看列表中有多少個a print(name2[0:-1:2]) #每隔2個打印一次。
翻轉:線程
name.reverse() #進行翻轉,將文件倒過來
排序:htm
name.sort() #排序方式爲,特殊符號-數字-大寫-小寫-中文
合併:blog
name.extend(name2) #將name2的合併到name中.name2仍然會有,和name中的名稱衝突也會一直執行。
複製:排序
name2 = name.copy() #淺copy,表示只能複製第一層列表中的文字,若是添加子目錄,那麼就只能copy更改後的。 import copy #深copy,能夠copy子層內的全部文字。 name2= copy.deepcopy(name)
extend()和append()功能相似,但在處理多個列表時,返回的結果徹底不一樣。
>>> a=[1,2,3]
>>> b=[4,5,6]
>>> a.append(b)
>>> a
[1, 2, 3, [4, 5, 6]]
>>> a=[1,2,3]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]
若是想要在A列表中,刪除B列表存在的內容:可使用:
案例:文件複製到A列表中,找到A列表想要刪除的內容存放到B列表中,而後for循環B列表的內容刪除A列表,最後再保存文件。
for i3 in b:
a.remove(i3)
列表生成式:
生成式:
做用:
使代碼更簡潔。
和生成器一併使用。
a=[i*2 for i in range(10)] #列表生成式
print(a)
#=
a=[]
for i in range(10): #普通的列表形式
a.append(i*2)
print(a)z
列表生成器:
就至關於將列表生成式內的命令對應的內存地址顯示出來,再賦值給a。
例句:
就是將列表生成式的[],更改成()
a=(i*2 for i in range(10))
若是想調用某一次的必須使用for循環進行
2. 用函數來作生成器:
斐波那契數列(Fibonacci),除第一個和第二個數外,任意一個數均可由前兩個數相加獲得:
1,1,2,3,5,8,13,21,34...
def fib(max):
n,a,b = 0,1,1
while n < max:
print(a)
a,b = b,a+b
n=n+1
fib(10)
將數值進行保存,並賦值給f,進行生成器的轉換。
def fib(max):
n,a,b = 0,1,1
while n < max:
# print(a)
yield a #保存函數的中斷狀態,返回。
a,b = b,a+b
n=n+1
return '---失敗---'
f=fib(10)
print(f.__next__())
print('——————')
print(f.__next__())
print(f.__next__())
print(f.__next__())
特色是:
能夠將函數進行中斷,而後再回到函數。
能夠實現並行效果。
注意:return命令,就是將錯誤值進行返回。並找出錯誤信息進行輸出。
用裝飾器來實現一個單線程下的,併發:
import time
def chibaozi(name): #6. 運行吃包子
print('%s 準備吃包子啦。'%name) #7. 打印name=A開始吃包子
while True: #8. 循環
baozi = yield #9. 中斷函數並返回
print('包子[%s]來了,被[%s]吃了'%(baozi,name)) #15. 打印包子i值和被A值吃了,結束並返回至14步
def zuobaozi(name): #2. 運行函數
c = chibaozi('A') #3. 將A賦值c
c2 = chibaozi('B') #4. 將B賦值c2
c.__next__() #5. 返回值chibaozi,並將c的賦值給予給name。就是name=A
c2.__next__() #9. 再次進入到chibaozi函數中,並開始運行6-9,並再次返回。
print('開始準備作包子~') #10. 打印開始準備作包子
for i in range(1,10): #11. 循環10次作包子
time.sleep(1) #12. 時間等待1秒鐘
print('作了2個包子') #13. 打印作了兩個包子
c.send(i) #14. 將i值回送,並返回第9步。
c2.send(i) #15. 將i值回送,並返回到第9步。返回後繼續運行for循環直至10次結束。
zuobaozi('xuan') #1. 運行zuobaozi,並將xuan賦值
報錯信息:
IndexError: list index out of range的錯誤緣由
list[index]index超出範圍
list是一個空的 沒有一個元素
進行list[0]就會出現該錯誤