首頁  >  文章  >  後端開發  >  分享Python中list的各項操作技巧

分享Python中list的各項操作技巧

Y2J
Y2J原創
2017-04-24 13:55:341163瀏覽

最近在學習 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 frebraly in the Python the Python #tence. #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:

#-*-coding:utf-8-*-
L = [1,2,3]   #创建 list 
L2 = [4,5,6]
print L
L.append(6)   #添加
print L
L.extend(L2) #合并
print L
L.insert(0,0) #插入
print L
L.remove(6)   #删除
print L
L.pop()     #删除
print L
print L.index(2)#索引
print L.count(2)#计数
L.reverse()   #倒序
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 進行排序。預設按照從小到大的順序排序

L = [2,5,3,7,1]
L.sort()
print L
==>[1, 2, 3, 5, 7]
L = ['a','j','g','b']
L.sort()
print L
==>['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.

L = [2,5,3,7,1]
L.sort(reverse = True)
print L
==>[7, 5, 3, 2, 1]
L = ['a','j','g','b']
L.sort(reverse = True)
print L
==>['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).

#-*-coding:utf-8-*-
#创建一个包含 tuple 的 list 其中tuple 中的三个元素代表名字 , 身高 , 年龄
students = [('John', 170, 15), ('Tom', 160, 12), ('Dave', 180, 10)]
print students
==>[('John', 170, 15), ('Tom', 160, 12), ('Dave', 180, 10)]
students.sort(key = lambda student:student[0])
print students
==>[('Dave', 180, 10), ('John', 170, 15), ('Tom', 160, 12)]#按名字(首字母)排序
students.sort(key = lambda student:student[1])
print students
==>[('Tom', 160, 12), ('John', 170, 15), ('Dave', 180, 10)]#按身高排序
students.sort(key = lambda student:student[2])
print students
==>[('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 qual toemaller than qual,argument is considered smaller than qual than, than than than than than than than than smaler thanor the smal,d than than than ter argument: cmp=lambda x,y: cmp(x.lower(), y.lower()). The default value is None.

#-*-coding:utf-8-*-
students = [('John', 170, 15), ('Tom', 160, 12), ('Dave', 180, 10)]
print students
==>[('John', 170, 15), ('Tom', 160, 12), ('Dave', 180, 10)]
#指定 用第一个字母的大写(ascii码)和第二个字母的小写(ascii码)比较
students.sort(cmp=lambda x,y: cmp(x.upper(), y.lower()),key = lambda student:student[0])
print students
==>[('Dave', 180, 10), ('Tom', 160, 12), ('John', 170, 15)]
#指定 比较两个字母的小写的 ascii 码值
students.sort(cmp=lambda x,y: cmp(x.lower(), y.lower()),key = lambda student:student[0])
print students
==>[('Dave', 180, 10), ('John', 170, 15), ('Tom', 160, 12)]
#cmp(x,y) 是python内建立函数,用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1

cmp 可以讓使用者自訂大小關係。平時我們認為 1 < 2 , 認為 a < b。

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

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

以上是分享Python中list的各項操作技巧的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn