Python 中 list 的各项操作技巧
最近在学习python语言。大致学习了python的基础语法。觉得python在数据处理中的地位和它的list操作密不可分。
特学习了相关的基础操作并在这里做下笔记。
''' Python--versionPython2.7.11 Quote:https://docs.python.org/2/tutorial/datastructures.html#more-on-lists Addbycamel972017-04 ''' list.append(x)#在列表的末端添加一个新的元素 Addanitemtotheendofthelist;equivalenttoa[len(a):]=[x].
list.extend(L)#将两个list中的元素合并到一起
Extendthelistbyappendingalltheitemsinthegivenlist;equivalenttoa[len(a):]=L.
list.insert(i,x)#将元素插入到指定的位置(位置为索引为i的元素的前面一个)
Insertanitematagivenposition.Thefirstargumentistheindexoftheelementbeforewhichtoinsert,soa.insert(0,x)insertsatthefrontofthelist,anda.insert(len(a),x)isequivalenttoa.append(x).
list.remove(x)#删除list中第一个值为x的元素(即如果list中有两个x,只会删除第一个x)
Removethefirstitemfromthelistwhosevalueisx.Itisanerrorifthereisnosuchitem.
list.pop([i])#删除list中的第i个元素并且返回这个元素。如果不给参数i,将默认删除list 中最后一个元素
Removetheitematthegivenpositioninthelist,andreturnit.Ifnoindexisspecified,a.pop()removesandreturnsthelastiteminthelist.(Thesquarebracketsaroundtheiinthemethodsignaturedenotethattheparameterisoptional,notthatyoushouldtypesquarebracketsatthatposition.YouwillseethisnotationfrequentlyinthePythonLibraryReference.)
list.index(x)#返回list中,值为X的元素的索引
Returntheindexinthelistofthefirstitemwhosevalueisx.Itisanerrorifthereisnosuchitem.
list.count(x)#返回list中,值为x的元素的个数
Returnthenumberoftimesxappearsinthelist.
demo:
#-*-coding:utf-8-*- L=[1,2,3]#创建list L2=[4,5,6] printL L.append(6)#添加 printL L.extend(L2)#合并 printL L.insert(0,0)#插入 printL L.remove(6)#删除 printL L.pop()#删除 printL printL.index(2)#索引 printL.count(2)#计数 L.reverse()#倒序 printL
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)
Sorttheitemsofthelistinplace(theargumentscanbeusedforsortcustomization,seesorted()fortheirexplanation).
1.对一个list进行排序。默认按照从小到大的顺序排序
L=[2,5,3,7,1] L.sort() printL ==>[1,2,3,5,7] L=['a','j','g','b'] L.sort() printL ==>['a','b','g','j']
2.reverse是一个bool值.默认为False,如果把它设置为True,那么这个list中的元素将会被按照相反的比较结果(倒序)排列.
# reverseisabooleanvalue.IfsettoTrue,thenthelistelementsaresortedasifeachcomparisonwerereversed.
L=[2,5,3,7,1] L.sort(reverse=True) printL ==>[7,5,3,2,1] L=['a','j','g','b'] L.sort(reverse=True) printL ==>['j','g','b','a']
3.key是一个函数,它指定了排序的关键字,通常是一个lambda表达式或者是一个指定的函数
#keyspecifiesafunctionofoneargumentthatisusedtoextractacomparisonkeyfromeachlistelement:key=str.lower.ThedefaultvalueisNone(comparetheelementsdirectly).
#-*-coding:utf-8-*- #创建一个包含tuple的list其中tuple中的三个元素代表名字,身高,年龄 students=[('John',170,15),('Tom',160,12),('Dave',180,10)] printstudents ==>[('John',170,15),('Tom',160,12),('Dave',180,10)] students.sort(key=lambdastudent:student[0]) printstudents ==>[('Dave',180,10),('John',170,15),('Tom',160,12)]#按名字(首字母)排序 students.sort(key=lambdastudent:student[1]) printstudents ==>[('Tom',160,12),('John',170,15),('Dave',180,10)]#按身高排序 students.sort(key=lambdastudent:student[2]) printstudents ==>[('Dave',180,10),('Tom',160,12),('John',170,15)]#按年龄排序
4.cmp是一个指定了两个参数的函数。它决定了排序的方法。
#cmpspecifiesacustomcomparisonfunctionoftwoarguments(iterableelements)whichshouldreturnanegative,zeroorpositivenumberdependingonwhetherthefirst#argumentisconsideredsmallerthan,equalto,orlargerthanthesecondargument:cmp=lambdax,y:cmp(x.lower(),y.lower()).ThedefaultvalueisNone.
#-*-coding:utf-8-*- students=[('John',170,15),('Tom',160,12),('Dave',180,10)] printstudents ==>[('John',170,15),('Tom',160,12),('Dave',180,10)] #指定用第一个字母的大写(ascii码)和第二个字母的小写(ascii码)比较 students.sort(cmp=lambdax,y:cmp(x.upper(),y.lower()),key=lambdastudent:student[0]) printstudents ==>[('Dave',180,10),('Tom',160,12),('John',170,15)] #指定比较两个字母的小写的ascii码值 students.sort(cmp=lambdax,y:cmp(x.lower(),y.lower()),key=lambdastudent:student[0]) printstudents ==>[('Dave',180,10),('John',170,15),('Tom',160,12)] #cmp(x,y)是python内建立函数,用于比较2个对象,如果xy返回1
cmp可以让用户自定义大小关系。平时我们认为1<2,认为a
现在我们可以自定义函数,通过自定义大小关系(例如2
当我们在处理某些特殊问题时,这往往很有用。 以上所述是小编给大家介绍的Python中list的各项操作技巧,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!