python初步學習-python數據類型-列表(list)


列表

list 在 python 中具有非常強大的功能

定義

在python中,用方括號表示一個list:[]

在方括號里面,可以是 int,也可以是 str類型的數據,甚至也可以是Flase/True這樣的布爾值

  • 列表可以無限大,就是說list里面可以容納的元素數量無限,當然這是在硬件設備理想的情況下。

在 java 中有一個跟 list 相似的數據類型-數組,但是兩者之間還是有差別的。
在 java 中,數組的元素必須是基本數據類型中某一個,也就是相同數據類型,要么全是int類型,要么全是char類型等。不能一個數組中既有int類型又有char類型。這是因為java中的數組需要提前聲明,聲明的時候就確定了里面的類型。但是list中的元素數據類型確實任意的,可以是int、str、list,dict等。

  • 列表、元組和字符串都是序列,序列的兩個主要特點是索引操作符和切片操作符。
    • 索引操作符讓我們可以從序列中抓取一個特定項目
    • 切片操作符讓我們能夠獲取序列的一個切片,即一部分序列

索引和切片

在字符串中,索引號是以字符為單位確定的;而在list中,是以元素為單位

>>> a = 'hello.world'
>>> a[2]
'l'
>>> b = ['alpha','bete','gamma']
>>> type(b)
<type 'list'>
>>> b[2]
'gamma'
>>> b[:2]   #跟str中的類似,切片的范圍是:包含開始位置,到結束位置之前
['alpha', 'bete']   #不包含結束位置
>>> b[:2][1]    #可以進行二次切片
'bete'

list和str兩種類型的數據,有共同的地方,它們都屬於序列(都是一些對象按照某個次序排列起來,這就是序列的最大特征),因此,就有很多類似的地方。如剛才演示的索引和切片,是非常一致的。

>>> a.index('h')
0
>>> b.index('bete')
1

如果從右邊開始編號,右邊第一個可以編號為-1,然后向左依次是:-2,-3,...,依次類推下來。這對字符串、列表等各種序列類型都是用。

>>> a[-1]
'd'
>>> b[-2]
'bete'

反轉

這個功能在編程中經常會用到。

方法一

>>> b = ['alpha','bete','gamma']
>>> b[::-1]
['gamma', 'bete', 'alpha']
>>> b
['alpha', 'bete', 'gamma']

上述不管是str還是lst反轉之后,再看原來的值,沒有改變。這就說明,這里的反轉,不是在“原地”把原來的值倒過來,而是新生成了一個值,那個值跟原來的值相比,是倒過來了。

方法二

使用 reversed() 函數

>>> b
['alpha', 'bete', 'gamma']
>>> reversed(b)
<listreverseiterator object at 0x059DC170>
>>> list(reversed(b))
['gamma', 'bete', 'alpha']

它返回一個可以迭代的對象

list基本操作

  • len() 查看list中的元素個數
>>> b
['alpha', 'bete', 'gamma']
>>> len(b)
3
  • + 連接兩個列表
>>> b
['alpha', 'bete', 'gamma']
>>> len(b)
3
>>> c = ['apple','orange','banana']
>>> b + c
['alpha', 'bete', 'gamma', 'apple', 'orange', 'banana']
  • * 重復元素
>>> b*2
['alpha', 'bete', 'gamma', 'alpha', 'bete', 'gamma']
  • count 計算元素在列表中出現的次數
>>> b
['alpha', 'bete', 'gamma', 'delta', 'epsilon']
>>> b.count('a')
0
>>> b.count('alpha')
1
  • in 成員運算符
>>> 'apple' in c
True
>>> 'apple' not in c
False
  • max()、min() 用法和str中的一樣,需要注意的是如果元素不是int類型,都是按照字符在ascii編碼中所對應的數字進行比較的。
>>> max(b)
'gamma'
>>> min(b)
'alpha'
  • append 將新的元素x追加到list的尾部。
>>> b
['alpha', 'bete', 'gamma']
>>> b.append('delta')
>>> b
['alpha', 'bete', 'gamma', 'delta']
>>> id(b)
94144512
>>> b.append('epsilon')
>>> b
['alpha', 'bete', 'gamma', 'delta', 'epsilon']
>>> id(b)
94144512

從上面可以看出,生成一個新的列表后,列表的地址沒有發生變化,因此,可以說明
列表是可以修改的。這種修改,不是復制一個新的,而是在原地進行修改。

  • insert 將元素插入到列表中,不是尾部
>>> b
['alpha', 'bete', 'gamma', 'delta', 'epsilon']
>>> b.insert(0,'zaeta')
>>> b
['zaeta', 'alpha', 'bete', 'gamma', 'delta', 'epsilon']
>>> 

  • list中的元素,不僅能增加,還能被刪除。刪除list元素的方法有兩個,它們分別是:

    • pop 刪除最后一個元素並返回這個元素
    >>> b
    ['zaeta', 'alpha', 'bete', 'gamma', 'delta', 'epsilon']
    >>> b.pop()
    'epsilon'
    >>> b
    ['zaeta', 'alpha', 'bete', 'gamma', 'delta']
    
    • remove 移除指定元素,沒有返回值
    >>> b
    ['zaeta', 'alpha', 'bete', 'gamma', 'delta']
    >>> b.remove('delta')
    >>> b
    ['zaeta', 'alpha', 'bete', 'gamma']
    


免責聲明!

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



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