列表的方法


  append()方法:向列表的末尾添加一個元素。在原值上進行修改,修改結果影響原值。

>>> lst
[1, 2, 3, 'c++', 'java', 'python']
>>> lst.append('web')
>>> lst
[1, 2, 3, 'c++', 'java', 'python', 'web'] 

  extend()方法:從一個可迭代對象中獲取元素,將它們追加到已知列表中,達到擴充列表的目的,比如可將一個列表合並到另一個列表中,也可將一個字符串追加到一個列表中。需注意的是extend()方法的參數必須是一個可迭代的對象。

>>> lst
[1, 2, 3, 'c++', 'java', 'python', 'web']
>>> lst2 = [6, 9, 'c#']
>>> lst.extend(lst2)      # 將列表lst2追加到列表lst中
>>> lst    # 列表lst被修改
[1, 2, 3, 'c++', 'java', 'python', 'web', 6, 9, 'c#']
>>> lst2    # 列表lst2不變
[6, 9, 'c#']
>>> s = 'ABC'
>>> lst.extend(s)     # 將字符串s追加到列表lst中
>>> lst
[1, 2, 3, 'c++', 'java', 'python', 'web', 6, 9, 'c#', 'A', 'B', 'C']
>>> s
'ABC'  

  extend()方法的參數必須是一個可迭代的對象,當其參數不是可迭代的對象時,則報錯:

>>> lst.extend(3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable     # 報錯:整型不可迭代

  count()方法:統計列表中某個元素的個數。

>>> lst
[1, 2, 3, 'c++', 'java', 'web', 'python', 3]
>>> lst.count(3)
2
>>> lst.count('java')
1
>>> lst.count('c')
0

  index()方法:檢索列表中某個元素第一次出現的下標位置,若沒有該元素,則報錯。

>>> lst
[1, 2, 3, 'c++', 'java', 'web', 'python', 3]
>>> lst.index('python')
6
>>> lst.index('QQ')    # 沒有該元素,則報錯
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: 'QQ' is not in list

  insert()方法:list.insert(i, x)是向列表中添加元素,append和extend方法只能將元素添加到列表的末尾,為insert方法可以將元素添加到列表的任意位置。即將元素x插入到列表索引i的前面。

>>> lst
[1, 2, 3, 'c++', 'java']
>>> lst.insert(0, 9)    # 元素9插入到索引0的前面
>>> lst
[9, 1, 2, 3, 'c++', 'java']
>>> lst.insert(5, 'python')    # 元素python插入到索引5的前面
>>> lst
[9, 1, 2, 3, 'c++', 'python', 'java']

  當i值超過了最大索引值時,則會自動將要插入的元素放到列表的尾部,即追加,相當於append。

>>> lst.insert(len(lst), 'web')
>>> lst
[9, 1, 2, 3, 'c++', 'python', 'java', 'web']
>>> lst.insert(99, 'web')
>>> lst
[9, 1, 2, 3, 'c++', 'python', 'java', 'web', 'web']

  remove()方法:刪除列表中的一個指定的元素。list.remove(x)刪除列表中的第一個元素x,若列表中沒有元素x,則報錯。

>>> lst
[9, 1, 2, 3, 'c++', 'python', 'java', 'web', 'web']
>>> lst.remove(9)
>>> lst
[1, 2, 3, 'c++', 'python', 'java', 'web', 'web']
>>> lst.remove('web')
>>> lst
[1, 2, 3, 'c++', 'python', 'java', 'web']
>>> lst.remove('www')    # 列表中沒有該元素,報錯
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list

  pop()方法:刪除列表中指定索引的元素。list.pop(i) 刪除列表中指定索引的元素,並返回被刪除的元素i為元素的索引,若pop()方法參數為空,則默認刪除最后一個元素並返回被刪除的元素。若i值超出索引范圍,則報錯。

>>> lst
[1, 2, 3, 'c++', 'python', 'java', 'web']
>>> lst.pop(1)
2
>>> lst
[1, 3, 'c++', 'python', 'java', 'web']
>>> lst.pop()    # 參數為空,默認刪除最后一個元素
'web'
>>> lst
[1, 3, 'c++', 'python', 'java']
>>> lst.pop(9)    # 索引超出范圍,報錯
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: pop index out of range

  需要注意的是pop()方法會將被刪除的元素返回。


   reverse()方法:將列表的元素順序反過來。是原地反轉,而不是另外生成一個新的列表。它沒有返回值。

>>> lst
[1, 3, 'c++', 'python', 'java']
>>> lst.reverse()
>>> lst
['java', 'python', 'c++', 3, 1]

  reversed()函數:這是python的內建函數,不是列表的方法,它會返回一個與列表元素順序相反的迭代對象,原列表不變。

>>> lst
['java', 'python', 'c++', 3, 1]
>>> lst2 = reversed(lst)
>>> lst2
<list_reverseiterator object at 0x7fcda7a8d5c0>
>>> list(lst2)    # 使用list將迭代對象轉化為列表顯示
[1, 3, 'c++', 'python', 'java']

  sort()方法:對列表中的元素進行排序。也是對列表進行原地修改,沒有返回值。它可接收兩個可選參數key和reverse。

>>> li = [1, 4, 7, 3, 6, 2, 0, 8]
>>> li.sort()
>>> li
[0, 1, 2, 3, 4, 6, 7, 8]

  默認從小到大進行排序,可設置參數reverse=True,實現從大到小的排序。

>>> li = [1, 4, 7, 3, 6, 2, 0, 8]
>>> li.sort(reverse=True)
>>> li
[8, 7, 6, 4, 3, 2, 1, 0]

  還可設置關鍵字參數,設置按照某個關鍵字進行排序。

>>> lst.sort(key=len)    # 設置按長度進行排序
>>> lst
['c', 'c++', 'web', 'java', 'python']

  sorted()函數:python的內建函數,可實現排序,並返回一個新的序列,原序列不變。將要排序的序列作為必選參數,並可接收兩個可選參數key和reverse。

>>> lst =  ['c', 'c++', 'python', 'java', 'web']
>>> lst2 = sorted(lst)
>>> lst2
['c', 'c++', 'java', 'python', 'web']
>>> lst    # 原序列不變
['c', 'c++', 'python', 'java', 'web']

  默認從小到大進行排序,可設置參數reverse=True,實現從大到小的排序。

>>> li = [1, 4, 7, 3, 6, 2, 0, 8]
>>> li2 = sorted(li, reverse=True)
>>> li2
[8, 7, 6, 4, 3, 2, 1, 0]

  設置關鍵字參數,設置按照某個關鍵字進行排序。

>>> lst
['c', 'c++', 'python', 'java', 'web']
>>> lst =  ['c', 'c++', 'python', 'java', 'web']
>>> lst2 = sorted(lst, key=len)    # 設置按長度進行排序
>>> lst2
['c', 'c++', 'web', 'java', 'python']

  實際上,sorted()函數可對任何序列進行排序,但總是返回一個列表。

>>> s = 'python'
>>> s2 = sorted(s)    # 對字符串進行排序
>>> s2
['h', 'n', 'o', 'p', 't', 'y']    # 總是返回一個列表

  clear()方法:就地清空列表中的內容。

>>> lst
['p', 2, 3, 'y']
>>> lst.clear()
>>> lst
[]

 

  此方法類似於切片賦值語句lst[:] = []


  copy()方法:復制列表,產生一個元素完全相同的新列表。

>>> lst = ['p', 2, 3, 'y']
>>> lst2 = lst.copy()    # 返回一個元素完全相同的新列表
>>> id(lst)
140521257880264
>>> id(lst2)
140521225345288
>>> lst3 = lst[:]    # 與copy類似返回一個元素完全相同的新列表
>>> id(lst3)
140521258442376
>>> lst4 = lst    # 列表lst4實際上和列表lst是同一個列表
>>> id(lst4)
140521257880264

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM