python --006--列表

列表 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)]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章