除了對list進行添加元素和刪除元素之外,還可以對list進行查找索引、排序、反轉和拷貝等操作。
使用index()方法查找指定值在list中的索引值。
list.index(value, start=0, end=9223372036854775807,/)
其中,參數value是指定要查找的值;start表示起始索引值,end表示結束索引值,start和end參數都具有默認值。index()方法的返回值是指定值在列表中的索引值。
index()方法的相關代碼如下所示:
list1 = [1,2,3,4]
list1.index(2)
1
list1.index(3,1,3)
2
因為index()方法的start和end參數都具有默認值,因此一般情況下,只需指定其value參數即可。當指定了end參數和start參數之後,就在指定區間內搜索。
(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參數的。
通過sort()方法對list中的元素進行排序,默認的排序方式是“升序”,即從小到大排序。
list.sort(key=None, reverse=False)
其中,參數key表示排序的規則,參數reverse表示排序方式,False時為“升序”,True時為“降序”。
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']
以上代碼表示元素的長度進行從大到小排序。
使用sort()方法對列表進行排序後,列表的變化是永久的,即使用sort()方法排序後,列表中元素的位置發生了變化。