Python基礎練習與代碼示例之list

今天我們來總結一下Python裏面差不多最常用的一種數據類型:list.

主要參考:https://docs.python.org/zh-cn/3/library/stdtypes.html#typesseq-common

DE8UG的代碼環境爲:

  • Windows10
  • python3.7

概念

列表是可變序列,通常用於存放同類項目的集合。

list的類定義爲: class list([iterable])

可以用多種方式構建列表:

  • 使用一對方括號來表示空列表: []
  • 使用方括號,其中的項以逗號分隔: [a], [a, b, c]
  • 使用列表推導式: [x for x in iterable]
  • 使用類型的構造器: list() 或 list(iterable)

構造器將構造一個列表,其中的項與 iterable 中的項具有相同的的值與順序。 iterable 可以是序列、支持迭代的容器或其它可迭代對象(DE8UG註解:iterable就是一個關鍵詞,代表了Python裏面的可迭代對象這個概念)。 如果 iterable 已經是一個列表,將創建並返回其副本,類似於 iterable[:]。 例如,list('abc') 返回 ['a', 'b', 'c'] 而 list( (1, 2, 3) ) 返回 [1, 2, 3]。 如果沒有給出參數,構造器將創建一個空列表 []。

其它許多操作也會產生列表,包括 sorted() 內置函數。

列表實現了所有 一般可變 序列的操作。 列表還額外提供了以sort方法,sort方法我們放到以後和排序一起講解。

下面先看一下一般可變 序列的操作都有哪些。

函數/操作

先看一般的操作,也就是序列的通用操作:

在表格中,s 和 t 是具有相同類型的序列,n, i, j 和 k 是整數而 x 是任何滿足 s 所規定的類型和值限制的任意對象。

in 和 not in 操作具有與比較操作相同的優先級。 + (拼接) 和 * (重複) 操作具有與對應數值運算相同的優先級。

(圖表如果顯示不出,請微信搜索:Python隨身聽,查看歷史文章)

表1:

再來看可變 序列的操作。 下面表格中的 s 是可變序列類型的實例,t 是任意可迭代對象,而 x 是符合對 s 所規定類型與值限制的任何對象 。

表2:

代碼演示

一般:

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

In [2]: t=[4,5,6]

In [3]: 1 in s
Out[3]: True

In [4]: 4 not in s
Out[4]: True

In [5]: s+t
Out[5]: [1, 2, 3, 4, 5, 6]

In [6]: s*2
Out[6]: [1, 2, 3, 1, 2, 3]

In [7]: s[2]
Out[7]: 3

In [8]: s[1:2]
Out[8]: [2]

In [9]: len(s)
Out[9]: 3

In [10]: max(s)
Out[10]: 3

In [11]: min(s)
Out[11]: 1

In [12]: s.index(2)
Out[12]: 1

In [13]: s.count(2)
Out[13]: 1

可變序列:

In [14]: s=['a','b','c','d']

In [15]: t=['tom','de8ug','jack','marry']

In [16]: s[1]='tom'

In [17]: s
Out[17]: ['a', 'tom', 'c', 'd']

In [18]: s[2:3]=t

In [19]: s
Out[19]: ['a', 'tom', 'tom', 'de8ug', 'jack', 'marry', 'd']

In [20]: del s[2:3]

In [21]: s
Out[21]: ['a', 'tom', 'de8ug', 'jack', 'marry', 'd']

In [22]: s.append('lilei')

In [23]: s
Out[23]: ['a', 'tom', 'de8ug', 'jack', 'marry', 'd', 'lilei']

In [24]: s.extend(t)

In [25]: s      
Out[25]:        
['a',           
 'tom',         
 'de8ug',       
 'jack',        
 'marry',       
 'd',           
 'lilei',       
 'tom',         
 'de8ug',       
 'jack',        
 'marry']       
                
In [26]: s*2    
Out[26]:        
['a',           
 'tom',         
 'de8ug',       
 'jack',        
 'marry',       
 'd',           
 'lilei',       
 'tom'...]

In [27]: s.insert(1,'hmm')

In [28]: s
Out[28]:
['a',
 'hmm',
 'tom',
 'de8ug',
 'jack',
 'marry',
 'd',
 'lilei',
 'tom',
 'de8ug',
 'jack',
 'marry']

In [29]: s.pop(0)
Out[29]: 'a'

In [30]: s
Out[30]:
['hmm',
 'tom',
 'de8ug',
 'jack',
 'marry',
 'd',
 'lilei',
 'tom',
 'de8ug',
 'jack',
 'marry']

In [31]: s.remove('de8ug')

In [32]: s
Out[32]: ['hmm', 'tom', 'jack', 'marry', 'd', 'lilei', 'tom', 'de8ug', 'jack', 'marry']

In [33]: s.reverse()

In [34]: s
Out[34]: ['marry', 'jack', 'de8ug', 'tom', 'lilei', 'd', 'marry', 'jack', 'tom', 'hmm']

ok,希望上面的代碼你都自己練習一遍,這樣在以後用到某個方法時候才能知道怎麼回事兒。

有任何問題歡迎留言,wx搜索“Python隨身聽”,【在看】一下,下期見。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章