python 中 list 的各項操作


最近在學習 python 語言。大致學習了 python 的基礎語法。覺得 python 在數據處理中的地位和它的 list 操作密不可分。

特學習了相關的基礎操作並在這里做下筆記。

'''
Python --version  Python 2.7.11
Quote : https://docs.python.org/2/tutorial/datastructures.html#more-on-lists
Add by camel97 2017-04
'''
list. append (x) #在列表的末端添加一個新的元素

Add an item to the end of the list; equivalent to a[len(a):] = [x].

 

list. extend (L)#將兩個 list 中的元素合並到一起

Extend the list by appending all the items in the given list; equivalent to a[len(a):] = L.

 

list. insert (i, x)#將元素插入到指定的位置(位置為索引為 i 的元素的前面一個)

Insert an item at a given position. The first argument is the index of the element before which to insert, so a.insert(0, x) inserts at the front of the list, and a.insert(len(a), x) is equivalent to a.append(x).

 

list. remove (x)#刪除 list 中第一個值為 x 的元素(即如果 list 中有兩個 x , 只會刪除第一個 x )

Remove the first item from the list whose value is x. It is an error if there is no such item.

 

list. pop ([i])#刪除 list 中的第 i 個元素並且返回這個元素。如果不給參數 i ,將默認刪除 list  中最后一個元素

Remove the item at the given position in the list, and return it. If no index is specified, a.pop() removes and returns the last item in the list. (The square brackets around the i in the method signature denote that the parameter is optional, not that you should type square brackets at that position. You will see this notation frequently in the Python Library Reference.)

 

list. index (x)#返回 list 中 , 值為 X 的元素的索引
   Return the index in the list of the first item whose value is x. It is an error if there is no such item.
list. count (x)#返回 list 中 , 值為 x 的元素的個數

Return the number of times x appears in the list.

 

demo:

 1 #-*-coding:utf-8-*-
 2 L = [1,2,3]      #創建 list 
 3 L2 = [4,5,6]
 4 
 5 print L
 6 L.append(6)      #添加
 7 print L
 8 L.extend(L2)  #合並
 9 print L
10 L.insert(0,0) #插入
11 print L
12 L.remove(6)      #刪除
13 print L
14 L.pop()          #刪除
15 print L
16 print L.index(2)#索引
17 print L.count(2)#計數
18 L.reverse()   #倒序
19 print L

 

 

result:

[1, 2, 3]
[1, 2, 3, 6]
[1, 2, 3, 6, 4, 5, 6]
[0, 1, 2, 3, 6, 4, 5, 6]
[0, 1, 2, 3, 4, 5, 6]
[0, 1, 2, 3, 4, 5]
2
1
[5, 4, 3, 2, 1, 0]

 

list.sort(cmp=None, key=None, reverse=False)

  Sort the items of the list in place (the arguments can be used for sort customization, see sorted() for their explanation).

 

1.對一個 list 進行排序。默認按照從小到大的順序排序

 1 L = [2,5,3,7,1]
 2 L.sort()
 3 print L
 4 
 5 ==>[1, 2, 3, 5, 7]
 6 
 7 
 8 L = ['a','j','g','b']
 9 L.sort()
10 print L
11 
12 ==>['a', 'b', 'g', 'j']

 

2.reverse 是一個 bool 值. 默認為 False , 如果把它設置為 True, 那么這個 list 中的元素將會被按照相反的比較結果(倒序)排列.

reverse is a boolean value. If set to True, then the list elements are sorted as if each comparison were reversed.

 

 1 L = [2,5,3,7,1]
 2 L.sort(reverse = True)
 3 print L
 4 
 5 ==>[7, 5, 3, 2, 1]
 6 
 7 
 8 L = ['a','j','g','b']
 9 L.sort(reverse = True)
10 print L
11 
12 ==>['j', 'g', 'b', 'a']

 

3.key 是一個函數 , 它指定了排序的關鍵字 , 通常是一個 lambda 表達式 或者 是一個指定的函數

#key specifies a function of one argument that is used to extract a comparison key from each list element: key=str.lower. The default value is None (compare the elements directly).

 

 1 #-*-coding:utf-8-*-
 2 #創建一個包含 tuple 的 list 其中tuple 中的三個元素代表名字 , 身高 , 年齡
 3 students = [('John', 170, 15), ('Tom', 160, 12), ('Dave', 180, 10)]
 4 print students
 5 
 6 ==>[('John', 170, 15), ('Tom', 160, 12), ('Dave', 180, 10)]
 7 
 8 students.sort(key = lambda student:student[0])
 9 print students
10 
11 ==>[('Dave', 180, 10), ('John', 170, 15), ('Tom', 160, 12)]#按名字(首字母)排序
12 
13 students.sort(key = lambda student:student[1])
14 print students
15 
16 ==>[('Tom', 160, 12), ('John', 170, 15), ('Dave', 180, 10)]#按身高排序
17 
18 students.sort(key = lambda student:student[2])
19 print students
20 
21 ==>[('Dave', 180, 10), ('Tom', 160, 12), ('John', 170, 15)]#按年齡排序

 

4.cmp 是一個指定了兩個參數的函數。它決定了排序的方法。

#cmp specifies a custom comparison function of two arguments (iterable elements) which should return a negative, zero or positive number depending on whether the first #argument is considered smaller than, equal to, or larger than the second argument: cmp=lambda x,y: cmp(x.lower(), y.lower()). The default value is None.

 1 #-*-coding:utf-8-*-
 2 students = [('John', 170, 15), ('Tom', 160, 12), ('Dave', 180, 10)]
 3 print students
 4 
 5 ==>[('John', 170, 15), ('Tom', 160, 12), ('Dave', 180, 10)]
 6 
 7 #指定 用第一個字母的大寫(ascii碼)和第二個字母的小寫(ascii碼)比較
 8 students.sort(cmp=lambda x,y: cmp(x.upper(), y.lower()),key = lambda student:student[0])
 9 print students
10 
11 ==>[('Dave', 180, 10), ('Tom', 160, 12), ('John', 170, 15)]
12 
13 #指定 比較兩個字母的小寫的 ascii 碼值
14 students.sort(cmp=lambda x,y: cmp(x.lower(), y.lower()),key = lambda student:student[0])
15 print students
16 
17 ==>[('Dave', 180, 10), ('John', 170, 15), ('Tom', 160, 12)]
18 
19 #cmp(x,y) 是python內建立函數,用於比較2個對象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1

cmp 可以讓用戶自定義大小關系。平時我們認為 1 < 2 , 認為 a < b。

現在我們可以自定義函數,通過自定義大小關系(例如 2 < a < 1 < b) 來對 list 進行指定規則的排序。

當我們在處理某些特殊問題時,這往往很有用。

 

 

如果以上的敘述有誤。歡迎大家批評指正。

 

 

 

 


免責聲明!

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



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