Python 列表常見基本方法

以下所有list代表列表對象

  • 增: list.append(); list.insert(1,x)
  • 刪: list.clear(); list.remove(); list.pop(x); del(list[index])
  • 改:; list[x]=a {直接用元素下表修改}
  • 查: list.index(value,[start [,stop]]); 用in判斷 x in list
  • 合併: list.extend(list2)

PS: 合併也可以用加號(+)來進行兩個列表的合併,但是要注意,採用extend()方法,原list地址不會改變,而使用list=list+list2時,list的地址會改變;但是還有一個情況,就是用增量賦值的加法,list的地址還是不會改變,即list+=list2。此現象與數字賦值運算中的現象不同,數字賦值運算中,增量賦值會改變最左邊變量的地址。

  • 排序(依據ASCII碼): list.sort(key=None, reserve=False)
    key爲可選參數 用於指定在比較前,調用某種函數對列表元素進行處理,如key=str.lower(lower爲將大寫字母轉爲小寫字母函數);reserve爲可選參數,默認爲增序排序, 若reserve=False則爲減序排序。

PS: list.sort()會將排序結果直接覆蓋原list,所以如果不想改變原有列表,可以使用 sorted(list,key=None, reserve=False) 函數,直接輸出排序結果,使用其他變量接收,sorted()也可用於元組、字典。

  • 複製: list.copy()
    PS: copy()方法新形成的列表的內存地址與原列表地址不一樣,說明通過該方法得到的是一個新的列表對象,這與賦值方法得到的結果是不一樣的,賦值方法得到的列表變量與原先列表變量都指向同一地址。

  • 統計: list.count(e) 其中e代表需要統計的元素

  • 永久性反向記錄:list.reverse()
    PS: 列表做反向操作後 ,列表對應的地址不變。

  • 列表解析:基於列表本身的元素操作語句解析功能,語法如下:
    [expression for iter_val in iterable]
    [expression for iter_val in iterable if cond_expr]
    其中,expression爲基於元素的運算表達式,如i**2,對每個元素求平方; iter_val爲從列表iterable迭代獲取的元素i; if子句判斷元素,cond_expr爲判斷元素的表達式。

>>> Nums=[i**2 for i in range(11) if i>0]
>>> print(Nums)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

上述代碼的等價一般實現:

>>> Nums=[]
>>> for i in range(1,11):
	Nums.append(i**2)

	
>>> print(Nums)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章