一 什么是列表
列表由一系列按特定順序排列的元素組成。元素可以是任何類型视卢,比如字符串踱卵,數(shù)字,浮點等 据过,其中的元素之間可以沒有任何關(guān)系惋砂。
在Python中,用方括號([])來表示列表绳锅,并用逗號來分隔其中的元素西饵。列表中的元素可以增加,刪除鳞芙,修改眷柔。下面是一個簡單的
列表示例
a="ss"
arry=[1,a,"訂單",1.2]
print(arry)
PS E:\Python\> python FirstDay.py
[1, 'ss', '訂單', 1.2]
通過索引獲取每個元素(索引從0開始)
print(arry[2])
PS E:\Python\> python FirstDay.py
訂單
Python為訪問最后一個列表元素提供了一種特殊語法。通過將索引指定為-1积蜻,可讓Python返
回最后一個列表元素:
print(arry[-1])
PS E:\Python\> python FirstDay.py
1.2
這種語法很有用闯割,因為你經(jīng)常需要在不知道列表長度的情況
下訪問最后的元素。這種約定也適用于其他負數(shù)索引竿拆,例如宙拉,索引-2返回倒數(shù)第二個列表元素,
索引-3返回倒數(shù)第三個列表元素丙笋,以此類推谢澈。
print(arry[-4]) #打印倒數(shù)第四個元素
print(arry[-4])
1
二 列表元素的增刪改
- 修改
修改最后一個元素的值
arry[-1]="我是最后一個"
- 添加
添加一個元素
arry.append("新來的")
print(arry[-4])
[1, 'ss', '訂單', '我是最后一個', '新來的']
- 刪除
使用del語句刪除元素:
del arry[-1] #刪除最后一項
print(arry)
del arry[-1]
print(arry)
[1, 'ss', '訂單', '我是最后一個', '新來的']
[1, 'ss', '訂單', '我是最后一個']
使用方法pop刪除元素:
pop方法將元素從列表中刪除,并返回該元素的值
arry.pop(-1)
print(arry)
[1, 'ss', '訂單']
a= arry.pop(-1) # 使用變量a來接收被刪除的元素的值
print(arry);
print(a)
[1, 'ss', '訂單']
我是最后一個
使用remove()方法刪除元素
在不知道要從列表中刪除的值的索引時御板。如果你只知道要刪除的元素的值锥忿,可使
用方法remove()。
arry.append("1");
print(arry)
[1, 'ss', '訂單', '我是最后一個', '1']
arry.remove("1");
print(arry)
[1, 'ss', '訂單', '我是最后一個']
方法remove()只刪除列表中第一個指定的值怠肋。如果要刪除的值在列表中出現(xiàn)多次敬鬓,其它值還會保存在列表中。要刪除所有指定的值,需要通過循環(huán)刪除钉答。
三 使用 range()創(chuàng)建數(shù)字列表
Python函數(shù)range()讓你能夠輕松地生成一系列的數(shù)字
range(1,6):生成1~5的數(shù)字础芍,不包括上限6
arrytwo=range(1,6);
arry=list(arrytwo)
for x in arry:
print(x)
1
1
2
3
4
5
range(1,6):在范圍1~6中,每隔一個數(shù)字生成一系列數(shù)字数尿,默認間隔為1
生成1~10范圍內(nèi)的偶數(shù)數(shù)字仑性,使用range(211,2)
生成1~10的偶數(shù)并循環(huán)打印出來:
arry1=list(range(2,11,2))
print(arry1)
for x in arry1:
print(x)
[2, 4, 6, 8, 10]
2
4
6
8
10
四 列表解析
列表解析將for循環(huán)和創(chuàng)建新元素的代碼合并成一行,并自動附加新元素
如:使用列表解析把1~11范圍中的數(shù)字的平方存放到列表中
arry2= [value**2 for value in range(1,11)]
print(arry2)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
五 列表的部分操作
- 1切片
切片的實質(zhì)就是從列表取部分元素右蹦,為原先列表生成子集的過程诊杆。子集最小包含列表的一個元素。最大和列表元素一樣
多何陆,是原先列表的一個復制
要創(chuàng)建列表切片晨汹,可指定從列表取元素的第一個元素和最后一個元素的索引。與函數(shù)range()一樣甲献,Python
在到達你指定的第二個索引前面的元素后停止宰缤。要輸出列表中的前三個元素,需要指定索引0~3晃洒,
這將輸出分別為0、1和2的元素朦乏。
如:
#列表的切片操作
arry3=[0,"one",2,"three",4,"five"]
print(arry3[0:3])
[0, 'one', 2]
打印了該列表的一個切片球及,輸出也是一個列表,其中包含前三個索引的值
當要創(chuàng)建列表的切片從第一個元素開始時呻疹,索引0可以省略:
print(arry3[:3])
,其與print(arry3[0:3])
打印出的結(jié)果一樣
print(arry3[2:])
:打印出包含從第二個索引到最后一個索引元素的切片
print(arry3[-3:-1])
#倒數(shù)第三個元素到倒數(shù)第一個
- 2遍歷切片:
for x in arry3[0:3]:
print(x)
- 3復制列表
#列表復制
print("----------列表復制","arry4-------------")
arry4 = ['1', '2', '3','4']
newarry4 = arry4[:]
print("arry4:")
print(arry4)
print("\nnewarry4 :")
print(newarry4)
創(chuàng)建了一個列表arry4吃引,取列表arry4的一個切片(arry4[:])賦值給newarry4,最后打印出這兩個列表刽锤,發(fā)現(xiàn)這兩個列表包含的元素相同
結(jié)果:
----------列表復制 arry4-------------
arry4:
['1', '2', '3', '4']
newarry4 :
['1', '2', '3', '4']
請按任意鍵繼續(xù). . .
newarry4two= arry4
這里將列表arry4賦給newarry4two镊尺,而不是將newarry4two的副本賦給newarry4two
。這種語法實際上是讓Python將新變量newarry4two關(guān)聯(lián)到包含在arry4中的列表并思,因此這兩個
變量都指向同一個列表庐氮。鑒于此,當我們將'5'添加到arry4中時宋彼,它也將出現(xiàn)在
newarry4two中弄砍;同樣,雖然'6'好像只被加入到了newarry4two中输涕,但它也將出現(xiàn)在這
兩個列表中音婶。