列表 list
數組可以管理多個數據 必須相同的類型
python本質沒有數據類型 管理一組數據就得使用列表
·創建列表
1、創建一個普通列表
l=['zhang3','li4','wang5']
l2=[1,2,3,4,5]
2、創建混合列表:
l3=[1,2,'hehe',3,'xiaohei']
3、創建空列表:
l4=[]
查看列表的長度
len(列表)
·向列表添加元素
append(元素)
屬於列表的方法
元素:列表中每一個數據都稱爲元素
1、每次只能添加一個元素
2、添加在列表的末尾
list1 = [1,2,3]
print list1,len(list1)#[1, 2, 3], 3
list1.append(4)
print list1,len(list1)#[1, 2, 3,4], 4
list1.append(5)
print list1,len(list1)#[1, 2, 3,4,5], 5
list1=[1,2,3]
list1.append([4,5,6])
print list1 #[1, 2, 3, [4, 5, 6]]
insert(索引,數據)
索引:index---下標
表示在指定位置插入數據
list1=[1,2,3]
list1.insert(1,5)
print list1 #[1, 5, 2, 3]
list1.insert(0,1)
print list1##[1,1, 5, 2, 3] 在上一個列表的基礎上
·從列表中獲取元素
通過列表下標獲取元素,如果超出列表下標範圍,會報錯,out of range
list1=[1,2,3]
pirnt list[0] #1
獲得列表中的所有元素,不重複,不遺漏
一個個拿
for 循環
list1=[1,2,3]
for i in list1:
print i #1 2 3分行打印
換位置
list1=[1,2,3]
temp=list[0]
list[0]=list[1]
list[1]=temp
print list1#[2,1,3]
·remove(元素)
list1=[1,2,3]
list1.remove(2)
print list1
如果刪除的元素不在列表中,會報錯
del 列表的元素,變量-----(不是方法,是語句)
list1=[1,2,3]
del list1[1]
print list1 #[1, 3]
del list[1]:刪除了下標爲1的元素
del list1:刪除這個列表
pop()
list1.pop():刪除最後一個元素
list1.pop(索引):
list.pop(2)對應2下標的元素 不是2
pop()刪除元素會將刪除的元素進行返回
後進先出 將最後一個刪除
list1=[1,2,3]
list1.pop()
print list1 #[1,2]
s=list1.pop() #3
返回最後一個值
列表的分片(slice)
切片
list1[起始下標,終止下標] 從起始下標到終止下標的所有元素(終止下標取不到)
list1=[3,4,5,6]
list1[1:3] #[4,5]6取不到
分片實質上是對原有列表進行了拷貝,原有列表沒有被改變
list1=[0,1,2,3,4,5,6,7,8,9]
list2=list1[3:5]
print list1#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print list2#[3, 4]
簡化:
list1=[3,4,5,6,]
1、list1[:3]#如果索引是第一個元素開始,可以省略下標
list1=[0,1,2,3,4,5,6,7,8,9]
print list1[:3]#[0, 1, 2]
2、list1[2:] #從下標爲2的元素到最後一個元素
list1=[0,1,2,3,4,5,6,7,8,9]
print list[2:]#[2, 3, 4, 5, 6, 7, 8, 9]
3、list1[:] #輸出整個列表
list2=list[:]
list1=[0,1,2,3,4,5,6,7,8,9]
list2=list[:]
list3=list1
list1[0]=99
print list1 #[0,1,2,3,4,5,6,7,8,9]
print list2#[0,1,2,3,4,5,6,7,8,9]
print list3#[0,1,2,3,4,5,6,7,8,9]
注意輸出結果 list1 list3相同 本質兩個是一樣的
一個是賦值 一個是拷貝
分片的進階:
list1[起始下標:結束下標:步長]
list1=[1,2,3,4,5,6,7,8,9]
print list[1,8,2] #[2,4,6,8]
list1[::2]#[1,3,5,7,9]
list1[::-1]#倒序輸出[9,8,7,6,5,4,3,2,1]
列表的常用運算符
1、比較運算符(布爾運算符):
list1=[1,2,3]
list2=[4,5,6]
print list1>list2
返回False
先比較第一個元素,如果第一個元素相等,比較第二個元素,類推
2、邏輯運算符
and or not
list1=[1,2,3]
list2=[4,5,6]
print list1>list2 and list1[0]>list2[0]#False
3、列表的拼接
列表的加法(extend())
list1=[1,2,3]
list2=[4,5,6]
print list1+list2 #[1,2,3,4,5,6]
同如下:
list1=[1,2,3]
list1.extend([4,5,6])#必須是列表的形式
4、重複運算符
list1=[1,2,3]
list1*3 #[1,2,3,1,2,3,1,2,3]
5、成員關係運算
in-----在中
not in---不在中
list1=[1,2,3]
print 1 not in list1 #Fasle
·列表的函數
dir(列表)
print dir(list)展示內置屬性與方法
1、count(元素)
查看元素出現的次數
list1=[1,3,4,4,2,5,1,1]
print list1.count(4) #返回2出現2次
2、index(元素)
返回元素在列表中的位置(返回第一次出現的位置)
list1=[1,3,1,4,2,3,1,1]
print list1.index(3)#返回1
從起始下標到結束下標範圍中,第一次出現元素的下標
index(元素,起始下標,結束下標)
list1=[1,3,1,4,2,3,1,1]
print list1.index(3,3,7)#返回5
3、reverse()
整個列表反轉
list1=[1,2,3,4,5]
list1.reverse()
print list1 #[5,4,3,2,1]
4、sort()
快速排序(默認從小到大)
list1=[4,3,5,2]
list1.sort()
print list1 #[2,3,4,5]
從大到小排序
第一:
list1=[4,3,5,2]
list1.sort()
list1.reverse()
print list1 [5,4,3,2]
第二:
sort(func,key,reverse)
func:排序算法
key:關鍵字
reverse:默認False
list1=[4,3,5,2]
list1.sort(reverse=True)
print list1
·二維列表
列表中的列表,列表中的元素可以是列表,每個列表元素有兩個下標
list1=[[1,2,3],[4,5,6],[7,8,9]]
print list[0][0]#返回1
每個列表元素的兩個下標分別代表行與列
遍歷
將列表中所有的元素訪問一遍,不遺漏,不重複
1、一維
list1=[1,2,3]
for i in list1:
print i
2、二維
list1=[[1,2,3],[4,5,6],[7,8,9]]
for i in list1:
for j in i:
print j#返回1,2,3.。。直到9 分行
·二維列表的定義
python 列表的定義:
1、
list1=[1,2,3]
list2=[list1*3]
print list2#[[1,2,3,1,2,3,1,2,3]]
list2=[list1]*3
print list2#[[1,2,3],[1,2,3],[1,2,3]]
創建二維列表:
1、直接定義:手工定義
2、間接定義 :利用推到式定義
list1=[[0 for i in range(3)]for i in range(3)]