python自學筆記(三)python基本數據類型之列表list


列表list特性概括

1、有序集合

2、通過偏移來索引,從而讀取數據

3、支持嵌套

4、可變的類型(dict 字典也是可變的)

 

(1)切片

a = [1,2,3,4,5,6,7]

正向索引 a[0:4:1] 1是步長

反向索引 a[-1:-4:-1]

默認索引 a[1::2] 從第二位到最后 步長是2

 

(2)添加操作

a = [1,2,3]

b = [4,5,6]

1. 用 "+"

a + b = [1,2,3,4,5,6]

2.Extend 接收參數並將該參數的每個元素都添加到原有的列表中(從list最后一個元素開始),原地修改列表而不是新建一個列表(id地址值不變,不會分配新內存空間)

3.Append 添加任意對象到列表的末端,同Extend 也是原地修改,不分配新內存

4.Insert 插入任意對象到列表中 可以控制插入位置 例如:a.insert[a,'ab']

(3)修改:修改列表本身只需要直接復制操作就行

a = [1,2,3]

a[0] = 'haha'

(4)刪除

1.Del  通過索引刪除指定位置的元素

del a[0]

del a 刪除列表對象的引用

del a[:]清空列表對象里的元素

2.Remove 移除列表中指定值的第一個匹配值,如果沒找到會報錯

a.remove(5) 5值,不是索引

3.Pop返回最后一個元素,並從list中刪除它

a.pop() -->返回list最后一個值

(5)成員關系

in、not in 可以判斷一個元素是否在列表里,返回一個bool類型,元素在列表就返回true,否則返回false

a = [1,2,3]

2 in a -->true

5 not in a -->true

(6)列表推導式

表達式     迭代變量      迭代器

[expr for iter_var in iterable]

1.首先迭代iterbale里所有內容,每一次迭代,都把iterbale里相應內容放在iter_var中,再在表達式中應用該iter_var的內容,最后用表達式的計算值生成一個list列表。

 

例如:生成一個包含1到10的列表

方法1:[x for x in range(1,11)]

方法2:range(1,11,1)

 

表達式     迭代變量    迭代器      條件語句

[expr for iter_var in iterable if cond_expr]

2.加入了判斷語句,只有滿足條件的內容才吧iterable里相應內容放到iter_var中,再在表達式中應用該iter_var的內容,最后用表達式的計算值生成一個列表。

 

練習:

1、1-10奇數列表

方法1:range(1,11,2)

方法2:[x for x in range(1,11) if x % 2 == 1]

 

(7)排序和翻轉sort/reverse 這2個方式直接修改原列表,它的返回值為None,所以

a = [33,11,58,65]

b = a.sort()

print b -->None

a已經翻轉 print a-->[11,33,58,65]

再調用 a.reverse() 列表第0位元素與最后一位對調,一次類推,第1位元素與倒數第二位元素對調

print a-->[65,58,33,11]

 

(8)內置list方法

返回一個列表,參數是可迭代對象,里面輸出的內容還是保持了傳入的可迭代對象的元素和順序,如果參數為空,則返回一個空的列表。

a = "asd"

list(a) -->['a','s','d'] 

list((1,2))-->[1,2]

 

(9)xrange和range的具體區別

1.range直接生成一個列表對象,xrange是生成一個xrange對象

2.xrange(開始,結束,步長)它生成了一個xrange對象 步長默認為1,可省略

a = xrange(1,10)

print a-->xrange(1,10)

 

b = range(1.5)

print b-->[1,2,3,4]

用法:

1.當我們需要操作一個非常大的數據,而且內存比較吃緊的時候,我們可以用xrange來操作,節省內存

2.xrange一般用在循環里,比如我們只需要操作部分數據的話,而不是返回全部元素來完成操作,推薦用xrange

例如: for m in range(1000) -->[0-999] 生成一個list對象,並生成多個元素

    for m in xrange(1000) -->生成一個xrange對象,只生成0-10共11個元素,然后組合成對應的值

    生成字符串列表 ['this %s' %a for a in xrange(100)]

     生成元素元組列表 [(x,y) for x in range(2) for y in range(2)] -->[(0,0),(0,1),(1,0),(1,1)]


免責聲明!

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



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