1. 程式人生 > 其它 >Python常用語法——List(列表)部分(完善中)

Python常用語法——List(列表)部分(完善中)

1、List(列表)是什麼

列表是Python中最基本、最常用的資料結構,列表的資料項不需要具有相同的型別

列表中的每個元素都分配一個數字作為它的索引,第一個索引是0,第二個索引是1,依此類推

例如:

List1=[1,2,3,”hello world”,”3.1415926”,[1,2,3]]

列表非常適合用域儲存在程式執行期間可能變化的資料集,列表是可以修改的。


2、列表的構建

直接建立

List = ['wade','james','bosh','haslem']
List1 = ['Google', 'Runoob', 1997, 2000]

使用range()函式建立

將range()作為list()的引數,輸出將為一個數字列表

#numbers的內容是:[1,2,3,4,5](也是左閉右開的)
numbers = list(range(1,6))

另外,range()也可以直接使用來生成一串數字

for value in range(1,5)
    print(value)

使用列表解析建立

列表解析將for迴圈和建立新元素的程式碼合併成一行,並自動附加新元素

#其中**2表示平方,這行程式碼將生成一個1-10的平方數的列表
squares = [value**2 for value in range(1,11)]

3、獲取元素方法

正向索引

類似於C語言中的陣列,正向索引從0開始

#列印列表中的第二個元素()索引為1
print(bicycles[1])

逆向索引

Python為訪問最後一個列表元素提供了一種特殊的語法,通過將索引指定為-1,可以讓Python返回最後一個列表元素
索引-2返回倒數第二個元素,索引-3返回倒數第三個列表元素,以此類推

#列印列表的最後一個元素
print(bicycles[-1])
#列印列表倒數第三個元素
print(biclcles[-3])

切片

使用切片的方法可以獲得列表中的一段資料(注意是左開右閉區間)

nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
#列印索引為0,1,2,3的元素(右側為開區間)
print(nums[0:4])
#可以使用逆向索引:列印從第一個資料(包含)到倒數第二個資料(不包含)
print(nums[0:-2])
#可以省略左邊界,則表示從開頭開始
print(nums[:3])
#可以省略右邊界,則表示到結尾結束(結尾也包括哦)
print(nums[3:])
#當然也可以這樣使用,列印後三個元素
print(nums[-3:])
#整體的切片(列印整個列表)
print(nums[:])

4、列表的複製

部分複製

使用切片擷取列表的一部分進行復制

nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
result = nums[-3:]

整體複製

很容易想到列表的整體複製也需要使用整體切片來完成

nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
result = nums[:]

這種方法才是真正意義上的深拷貝,如果直接使用賦值號,其實是淺拷貝(相當於拷貝了指標)

nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
#淺拷貝
result = nums

5、列表中新增元素

append()方法

#在列表的末尾新增元素'honda'(動態建立)
motocycles.append('honda')

extend()方法

在列表末尾一次性追加另一個序列中的多個值

#在列表的末尾連續新增序列[12,23,34]中的物件
motocycles.append([12,23,34])
#在列表List的末尾新增一個拓展列表
List.extend(tableList)

insert()方法

使用insert()方法可以在列表的任意位置新增新元素

#在列表List索引為4的位置插入元素'lewis'
List.insert(4,'lewis')

6、從列表中刪除元素

使用del語句

如果知道要刪除的元素在列表中的位置,可以直接使用del語句進行刪除

#刪除索引為2的元素
del alist[2]
#可以直接刪除整個列表或者刪除其中的切片
del List
del List[:3]

pop()方法

pop()方法可以刪除列表末尾的元素(或任意位置的元素),並且讓你能夠接著使用它

#刪除列表blist中的最後一個元素,並將刪除的元素返回給b
b = blist.pop()
#刪除指定元素,並返回
c = clist.pop(2)

remove()方法

如果你只知道要刪除的元素的值,可以使用remove()方法

list1 = ['Google', 'Runoob', 'Taobao', 'Baidu']
list1.remove('Taobao')

remove()方法只刪除第一個指定的值,如果要刪除的值在列表中出現多次,需要用迴圈判斷是否刪除了所有的值


7、列表的排序

sort()方法——永久排序

nums = [100, 200, 330, 40, 50, 60, 70, 80, 90]
#永久性排序,就是這個列表就變了
nums.sort()
#預設是從小到大排序,可以傳遞引數將順序反轉
nums.sort(reserse = True)

sorted()函式——臨時排序

注意上面的sort()叫方法,這個sorted()叫函式,其區別在於使用時的寫法

nums = [100, 200, 330, 40, 50, 60, 70, 80, 90]
#只是此次print的時候是按照排序的順序列印,實際的列表並沒有改變
print(sorted(nums))
#也可以將順序反轉
print(sorted(nums, reserse = True))

reverse()方法——反轉順序

注意這個方法只是將當前的順序進行反轉,也不是由大到小排序,是永久性地修改順序

nums = [100, 200, 330, 40, 50, 60, 70, 80, 90]
#直接倒序
nums.reverse()

8、列表的其他常見方法/函式

len()函式——返回列表長度

list_length = len(list)

max()/min函式——返回最大/最小值

list_max = max(list)
list_min = min(list)

count()方法——統計出現次數

appear_times = list.count('a')

copy()方法——列表複製

類似於a[:]

list2 = list1.copy()

9、特殊的列表——元組

不可變的列表稱為元組,列表使用[]來標識,元組使用()來標識

元組的元素值不可修改

dimensions = (200,50)
#元組中的元素值不可隨意修改,這一行程式碼將報錯
dimensions[0] = 250

元組可以直接重新定義

dimensions = (200,50)
#元組整體作為一個變數可以直接重新定義並重新賦值,下面的程式碼是合法的
dimensions = (250,100)