列表操作
上次課程我們將到了列表,接著我們繼續(xù)來看列表的一些操作
刪除列表中的元素
del 函數(shù)可以刪除列表中的元素,一般的函數(shù)都是用小括號,只有列表用中括號
list1=list(range(9))
list1
[0, 1, 2, 3, 4, 5, 6, 7, 8]
del list1[0]
list1
[1, 2, 3, 4, 5, 6, 7, 8]
刪除列表的子列表:
del list1[1:3]
list1
[1, 4, 5, 6, 7, 8]
刪除整個列表
del list1
list1
##相當(dāng)于從內(nèi)存中清空---------------------------------------------------------------------------```
下面我們看一個難點(diǎn)
列表生成式(難點(diǎn))
在Python的列表中,列表生成式體現(xiàn)了Python優(yōu)雅的特色! 如果讓你生成一個列表,元素是1~10的平方,你會怎么生成?
1 方法一:簡單粗暴
list2[1**2, 2**2,3**2,4**2,5**2,6**2,7**2,8**2,9**2,10**2]
list2
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
2 方法二:循環(huán)
list3=[]
for i in range(1,11):
list3.append(i**2)
list3
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
3 方法三:列表生成式,列表里面可以放循環(huán)
,中間里面沒有標(biāo)點(diǎn)符號
,全部是空格
,而正常書寫函數(shù)后面跟著的是·冒號·
[i**2 for i in range(11) ]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
list4=[i**2 for i in range(11) ]
list4
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
一行代碼搞定!,是不是很優(yōu)雅,哈哈
大家比較一下循環(huán)和列表生成式,發(fā)現(xiàn)列表生成式結(jié)構(gòu)如下
[表達(dá)式 for i in 序列]
如果循環(huán)里是雙層的,你還能用列表生成式?
當(dāng)然可以!
[i*j for j in range(1,i) for i in range(1,10)]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 2, 4, 6, 8, 10, 12, 14, 16, 18, 3, 6, 9, 12, 15, 18, 21, 24, 27, 4,
8, 12, 16, 20, 24, 28, 32, 36, 5, 10, 15, 20, 25, 30, 35, 40, 45, 6, 12, 18, 24, 30, 36,
42, 48, 54, 7, 14, 21, 28, 35, 42, 49, 56, 63, 8, 16, 24, 32, 40, 48, 56, 64, 72, 9, 18, 2
7, 36, 45, 54, 63, 72, 81]
雙層循環(huán)列表生成式
[i*j for j in range(1,i) for i in range(1,10) if j<=i]##結(jié)果如下
[1, 2, 3, 4, 5, 6, 7, 8, 9, 4, 6, 8, 10, 12, 14, 16, 18, 9, 12, 15, 18, 21, 24, 27, 16, 20, 2
4, 28, 32, 36, 25, 30, 35, 40, 45, 36, 42, 48, 54, 49, 56, 63, 64, 72]
常規(guī)for循環(huán)寫法
list5=[]
for i in range(0,10):
for j in range(1,i):
if j<=i:
list5.append(i*j)
print(list5)
[2, 3, 6, 4, 8, 12, 5, 10, 15, 20, 6, 12, 18, 24, 30, 7, 14, 21, 28, 35, 42, 8, 16, 24, 32,
40, 48, 56, 9, 18, 27, 36, 45, 54, 63, 72]
常規(guī)for循環(huán)寫法 ##比較二者寫法區(qū)別
list6=[]
if j<=i:
for i in range(1,10):
for j in range(1,i):
list6.append(i*j)
print(list6)
[2, 3, 6, 4, 8, 12, 5, 10, 15, 20, 6, 12, 18, 24, 30, 7, 14, 21, 28, 35, 42, 8, 16, 24,
32,40, 48, 56, 9, 18, 27, 36, 45, 54, 63, 72]
習(xí)題:求出1~10中能被3整除的數(shù)的平方做成列表:通過if來篩選符合條件的(就是循環(huán)里嵌套判斷),這個時候就是利用列表生成式表示
[i**2 for i in range(1,11) if i%3==0]
[9, 36, 81]