Python 列表操作指南3

小萬哥丶發表於2023-10-04

示例,將新列表中的所有值設定為 'hello':

newlist = ['hello' for x in fruits]

表示式還可以包含條件,不像篩選器那樣,而是作為操縱結果的一種方式:

示例,返回 "orange" 而不是 "banana":

newlist = [x if x != "banana" else "orange" for x in fruits]

列表物件具有 sort() 方法,預設情況下將對列表進行字母數字排序,升序排列:

示例,對列表按字母順序排序:

thislist = ["orange", "mango", "kiwi", "pineapple", "banana"]
thislist.sort()
print(thislist)

示例,對列表按數字順序排序:

thislist = [100, 50, 65, 82, 23]
thislist.sort()
print(thislist)

要進行降序排序,請使用關鍵字引數 reverse = True:

示例,對列表進行降序排序:

thislist = ["orange", "mango", "kiwi", "pineapple", "banana"]
thislist.sort(reverse=True)
print(thislist)

示例,對列表進行降序排序:

thislist = [100, 50, 65, 82, 23]
thislist.sort(reverse=True)
print(thislist)

您還可以透過使用關鍵字引數 key = function 來自定義自己的函式。該函式將返回一個數字,用於對列表進行排序(首先是最小的數字):

示例,根據數字距離 50 的接近程度對列表進行排序:

def myfunc(n):
  return abs(n - 50)

thislist = [100, 50, 65, 82, 23]
thislist.sort(key=myfunc)
print(thislist)

預設情況下,sort() 方法區分大小寫,這導致所有大寫字母在小寫字母之前排序:

示例,區分大小寫的排序可能會導致意外結果:

thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort()
print(thislist)

幸運的是,在對列表進行排序時,我們可以使用內建函式作為鍵函式。因此,如果您想要不區分大小寫的排序函式,請使用 str.lower 作為鍵函式:

示例,執行不區分大小寫的列表排序:

thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort(key=str.lower)
print(thislist)

如果要反轉列表的順序,而不考慮字母表順序,該怎麼辦?reverse() 方法將元素的當前排序順序反轉。

示例,反轉列表項的順序:

thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.reverse()
print(thislist)

您不能簡單地透過鍵入 list2 = list1 來複制一個列表,因為:list2 將只是對 list1 的引用,對 list1 進行的更改也會自動在 list2 中進行。有多種方法可以進行復制,其中一種方法是使用內建的列表方法 copy()。

示例,使用 copy() 方法複製一個列表:

thislist = ["apple", "banana", "cherry"]
mylist = thislist.copy()
print(mylist)

另一種複製的方法是使用內建的 list() 方法。

示例,使用 list() 方法複製一個列表:

thislist = ["apple", "banana", "cherry"]
mylist = list(thislist)
print(mylist)

在Python中,有多種方法可以連線兩個或多個列表。其中一種最簡單的方法是使用 + 運運算元。

示例,連線兩個列表:

list1 = ["a", "b", "c"]
list2 = [1, 2, 3]

list3 = list1 + list2
print(list3)

另一種連線兩個列表的方法是將 list2 中的所有項逐一附加到 list1 中:

示例,將 list2 附加到 list1:

list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]

for x in list2:
  list1.append(x)

print(list1)

或者您可以使用 extend() 方法,其目的是將一個列表的元素新增到另一個列表中:

示例,使用 extend() 方法將 list2 新增到 list1 的末尾:

list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]

list1.extend(list2)
print(list1)

Python具有一組內建方法,您可以在列表上使用這些方法。

方法 描述
append() 在列表末尾新增元素
clear() 移除列表中的所有元素
copy() 返回列表的副本
count() 返回具有指定值的元素數量
extend() 將列表(或任何可迭代物件)的元素新增到當前列表的末尾
index() 返回具有指定值的第一個元素的索引
insert() 在指定位置新增元素
pop() 移除指定位置的元素
remove() 移除具有指定值的專案
reverse() 顛倒列表的順序
sort() 對列表進行排序

最後

為了方便其他裝置和平臺的小夥伴觀看往期文章,連結奉上:

公眾號搜尋Let us Coding知乎開源中國CSDN思否掘金InfoQ簡書部落格園慕課51CTOhelloworld騰訊開發者社群阿里開發者社群

看完如果覺得有幫助,歡迎點贊、收藏關注

相關文章