Python基础(二):列表常用方法

注:以下代码在ipython下实现,这种交互模式在练习基础知识是非常方便的。

增加

append()方法用于在python的列表的末尾增加内容。

In [1]: li1=[1,2,3]

In [2]: li1.append('hello')

In [3]: li1
Out[3]: [1, 2, 3, 'hello']

In [4]: li1.append(['a'])

In [5]: li1
Out[5]: [1, 2, 3, 'hello', ['a']]

In [6]: li1.append(('tuple1'))
In [8]: li1=[1,2,3]

In [9]: li1.append(('tuple1,'))

In [10]: li1
Out[10]: [1, 2, 3, 'tuple1,']

insert(index,object)方法可以在特定位置插入元素,index代表索引下标。

In [11]: li1=[1,2,3]

In [12]: li1.insert(1,'hello')

In [13]: li1
Out[13]: [1, 'hello', 2, 3]

extend(iterable)方法可插入可迭代的对象。

In [14]: li1=[1,2,3]

In [15]: li1.extend('abc')

In [16]: li1
Out[16]: [1, 2, 3, 'a', 'b', 'c']

In [17]: li1.extend(['d','e'])

In [18]: li1
Out[18]: [1, 2, 3, 'a', 'b', 'c', 'd', 'e']

删除

clear()方法可以清空整个列表。

In [19]: li1=[1,2,3]

In [20]: li1.clear()

In [21]: li1
Out[21]: []

pop([index])方法可以弹出任意位置的元素值并且会返回删除的值,其中index索引下标是可选参数,若不选代表删除最后一个值。

In [23]: li1=[1,2,3,5,'hello','python']

In [24]: li1.pop()
Out[24]: 'python'

In [25]: li1
Out[25]: [1, 2, 3, 5, 'hello']

In [26]: li1.pop(2)
Out[26]: 3

In [27]: li1
Out[27]: [1, 2, 5, 'hello']

remove(object)方法可以移除列表中的元素,若列表中有多y个值与要删除的元素的值相同,则只会移除匹配的第一个值。

In [29]: li1=[1,2,3,3,3,4,'hello']

In [30]: li1
Out[30]: [1, 2, 3, 3, 3, 4, 'hello']

In [31]: li1.remove(3)

In [32]: li1
Out[32]: [1, 2, 3, 3, 4, 'hello']

In [33]: li1.remove('hello')

In [34]: li1
Out[34]: [1, 2, 3, 3, 4]

查找

index(value,[start,[stop]])可以查找目标元素值并返回索引值,其中start和stop为可选参数,代表要查找元素的范围。

In [35]: li1=[1,2,3,3,3,4,'hello']
In [36]: li1.index(4) Out[36]: 5 In [37]: li1.index(3) #相同元素返回第一个索引值 Out[37]: 2 In [38]: li1.index(3,4,6) Out[38]: 4 In [39]: li1.index(3,0,2) #范围原则左闭右开,查找不到报错 --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-39-e5b4c08d3bc9> in <module>() ----> 1 li1.index(3,0,2) ValueError: 3 is not in list

count()方法会统计元素出现的次数并返回。

In [40]: li1=[1,2,3,3,3,4,'hello']

In [41]: li1.count(3)
Out[41]: 3

其他方法

copy()复制列表中的内容,copy()方法会新开辟一个空间存入复制的列表值,而与“=”不同,“=”是与原列表的地址空间相同,是一种引用。注意下面id()方法后面的值,id()方法返回列表的地址空间。

In [42]: li1=[1,2,3]

In [43]: li2=li1.copy()

In [44]: li2
Out[44]: [1, 2, 3]

In [45]: id(li1)
Out[45]: 3028819948

In [46]: id(li2)
Out[46]: 3028875340

In [47]: li3=li1

In [48]: li3
Out[48]: [1, 2, 3]

In [49]: id(li3)
Out[49]: 3028819948

reverse()方法会将列表反序。

In [50]: li1=[1,2,3]

In [51]: li1.reverse()

In [52]: li1
Out[52]: [3, 2, 1]

sort(key=None,reverse=False)方法对列表进行永久性排序,sorted()方法对列表进行临时排序。

In [54]: li1.sort()

In [55]: li1
Out[55]: ['a', 'c', 'd', 'u', 'z']

In [56]: li1=['a','c','z','u','d']
In [59]: li1=['a','c','z','u','d']

In [60]: li1
Out[60]: ['a', 'c', 'z', 'u', 'd']

In [61]: sorted(li1)
Out[61]: ['a', 'c', 'd', 'u', 'z']

In [62]: li1
Out[62]: ['a', 'c', 'z', 'u', 'd']

降序排序

In [59]: li1=['a','c','z','u','d']

In [60]: li1
Out[60]: ['a', 'c', 'z', 'u', 'd']

In [61]: sorted(li1)
Out[61]: ['a', 'c', 'd', 'u', 'z']

In [62]: li1
Out[62]: ['a', 'c', 'z', 'u', 'd']
#字符串与数字无法排序,可是有key的参数来解决
In [66]: li1=[1,2,'a','x','c','w'] In [67]: li1.sort() --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-67-e7369f1ac399> in <module>() ----> 1 li1.sort() TypeError: unorderable types: str() < int() In [68]: li1.sort(key=str) In [69]: li1 Out[69]: [1, 2, 'a', 'c', 'w', 'x']
In [75]: li1=['1','4',6,5,9,2]

In [76]: li1.sort(key=int)

In [77]: li1
Out[77]: ['1', 2, '4', 5, 6, 9]

常用的列表方法就这些,如有不当之处欢迎批评指正。

原文地址:https://www.cnblogs.com/austinjoe/p/9365331.html