Python 中 list 的各項(xiàng)操作技巧
最近在學(xué)習(xí) python 語言。大致學(xué)習(xí)了 python 的基礎(chǔ)語法。覺得 python 在數(shù)據(jù)處理中的地位和它的 list 操作密不可分。
特學(xué)習(xí)了相關(guān)的基礎(chǔ)操作并在這里做下筆記。
''' 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) #在列表的末端添加一個(gè)新的元素 Add an item to the end of the list; equivalent to a[len(a):] = [x].
list.extend(L)#將兩個(gè) list 中的元素合并到一起
Extend the list by appending all the items in the given list; equivalent to a[len(a):] = L.
list.insert(i, x)#將元素插入到指定的位置(位置為索引為 i 的元素的前面一個(gè))
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 中第一個(gè)值為 x 的元素(即如果 list 中有兩個(gè) x , 只會(huì)刪除第一個(gè) 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 個(gè)元素并且返回這個(gè)元素。如果不給參數(shù) i ,將默認(rèn)刪除 list 中最后一個(gè)元素
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 的元素的個(gè)數(shù)
Return the number of times x appears in the list.
demo:
#-*-coding:utf-8-*- L = [1,2,3] #創(chuàng)建 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)#計(jì)數(shù) 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.對(duì)一個(gè) list 進(jìn)行排序。默認(rèn)按照從小到大的順序排序
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 是一個(gè) bool 值. 默認(rèn)為 False , 如果把它設(shè)置為 True, 那么這個(gè) list 中的元素將會(huì)被按照相反的比較結(jié)果(倒序)排列.
# 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 是一個(gè)函數(shù) , 它指定了排序的關(guān)鍵字 , 通常是一個(gè) lambda 表達(dá)式 或者 是一個(gè)指定的函數(shù)
#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-*-
#創(chuàng)建一個(gè)包含 tuple 的 list 其中tuple 中的三個(gè)元素代表名字 , 身高 , 年齡
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 是一個(gè)指定了兩個(gè)參數(shù)的函數(shù)。它決定了排序的方法。
#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.
#-*-coding:utf-8-*-
students = [('John', 170, 15), ('Tom', 160, 12), ('Dave', 180, 10)]
print students
==>[('John', 170, 15), ('Tom', 160, 12), ('Dave', 180, 10)]
#指定 用第一個(gè)字母的大寫(ascii碼)和第二個(gè)字母的小寫(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)]
#指定 比較兩個(gè)字母的小寫的 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內(nèi)建立函數(shù),用于比較2個(gè)對(duì)象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
cmp 可以讓用戶自定義大小關(guān)系。平時(shí)我們認(rèn)為 1 < 2 , 認(rèn)為 a < b。
現(xiàn)在我們可以自定義函數(shù),通過自定義大小關(guān)系(例如 2 < a < 1 < b) 來對(duì) list 進(jìn)行指定規(guī)則的排序。
當(dāng)我們?cè)谔幚砟承┨厥鈫栴}時(shí),這往往很有用。
以上所述是小編給大家介紹的Python 中 list 的各項(xiàng)操作技巧,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
利用python操作SQLite數(shù)據(jù)庫及文件操作詳解
這篇文章主要給大家介紹了關(guān)于利用python操作SQLite數(shù)據(jù)庫及文件操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09
python庫lxml在linux和WIN系統(tǒng)下的安裝
這篇內(nèi)容我們給大家分享了lxml在WIN和LINUX系統(tǒng)下的簡(jiǎn)單快速安裝過程,有興趣的朋友參考學(xué)習(xí)下。2018-06-06
詳解基于python的全局與局部序列比對(duì)的實(shí)現(xiàn)(DNA)
這篇文章主要介紹了詳解基于python的全局與局部序列比對(duì)的實(shí)現(xiàn)(DNA).文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
Python設(shè)計(jì)模式之代理模式實(shí)例
這篇文章主要介紹了設(shè)計(jì)模式中的代理模式Python實(shí)例,需要的朋友可以參考下2014-04-04

