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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM