除了对list进行添加元素和删除元素之外,还可以对list进行查找索引、排序、反转和拷贝等操作。
3 其他操作
3.1 查找索引
使用index()方法查找指定值在list中的索引值。
3.1.1 index()方法的语法
list.index(value, start=0, end=9223372036854775807,/)
其中,参数value是指定要查找的值;start表示起始索引值,end表示结束索引值,start和end参数都具有默认值。index()方法的返回值是指定值在列表中的索引值。
3.1.2 相关代码
index()方法的相关代码如下所示:
list1 = [1,2,3,4]
list1.index(2)
1
list1.index(3,1,3)
2
因为index()方法的start和end参数都具有默认值,因此一般情况下,只需指定其value参数即可。当指定了end参数和start参数之后,就在指定区间内搜索。
3.1.3 注意事项
(1)index()方法返回指定值第一次出现的位置索引
>>> list1 = [1,2,3,4,3,4]
>>> list1.index(3)
2
从以上代码可以看到,list1中包含两个3,index()方法返回的是第一个3的索引。
(2)当搜索的值不在list中,显示错误
>>> list1.index(5)
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
list1.index(5)
ValueError: 5 is not in list
从以上代码中可以看到,list1中不包含5,因此使用index()元素搜索5时,会显示错误信息。该错误信息为“值错误,list中不包含5”。
(3)返回的索引值是基于0,而不是基于参数start
>>> list1.index(3,4,5)
4
以上代码的含义是在list1的4-5索引之间搜索数值4,此时返回的索引值是4,即基于0,而不是基于start参数的。
3.2 排序
通过sort()方法对list中的元素进行排序,默认的排序方式是“升序”,即从小到大排序。
3.2.1 sort()方法的语法
list.sort(key=None, reverse=False)
其中,参数key表示排序的规则,参数reverse表示排序方式,False时为“升序”,True时为“降序”。
3.2.2 相关代码
list1 = [1,4,2,5,3]
list1.sort()
print(list1)
[1, 2, 3, 4, 5]
以上代码使用默认参数,将list1中的元素进行从小到大排序。
list1.sort(reverse=True)
print(list1)
[5, 4, 3, 2, 1]
以上代码将list1中的元素进行从大到小排序。
>>> def func(x):
... return len(x)
>>> list2 = ['a', 'AAA', 'aaAA', 'Aa']
>>> list2.sort(key = func)
print(list2)
['a', 'Aa', 'AAA', 'aaAA']
以上代码中,定义了一个名为func()的函数,该函数的作用是返回参数的长度。将该函数作为sort()方法的key参数,因为没有指定reverse参数,因此以上代码表示以元素的长度进行从小到大排序。
>>> list2.sort(key = func, reverse=True)
>>> print(list2)
['aaAA', 'AAA', 'Aa', 'a']
以上代码表示元素的长度进行从大到小排序。
3.2.3 注意事项
使用sort()方法对列表进行排序后,列表的变化是永久的,即使用sort()方法排序后,列表中元素的位置发生了变化。