列表(操作方法 解析式)

一 基礎

列表在python中感覺是最靈活的有序集合對象類型,有點像其他語言的數組的類型,它有很多非常有用的操作,下面大概介紹下
列表可以嵌套,索引和分片操作
嵌套:
l3 = ['a',['b','cc']]
索引:
l3[1]
分片:
l3[2:4]
下面有2個非常有意思的操作,+和*
比如:
[1,2]+[5,6]
結果生成了一個新的列表,[1,2,5,6]
注意python是強類型的語言,
如果
a = [1,2]
print a+"11"
它會報錯:
Traceback (most recent call last):
File "", line 1, in
TypeError: can only concatenate list (not "str") to list

如果你要相加的話,可以把a通過str()方法轉換成字符類型,或者是把字符串"11"通過list()方法轉換成列表類型

 

二, 操作

上面介紹了python列表的基本知識點
python列表操作方法有下面主要幾點:
a = [1,2,3,4,5]
1append()方法
向列表的尾部插入數據
有點像push操作
它可以push大部分數據,比如數字,字符串到列表裏,
比如:
a.append(6)
a.append(7)
a.append([1,3])
如果你要進行列表的合併的話,用下面的extend方法
2extend()方法
b = ['a','b']
b = a.extend(b)
輸出的結果是[1,2,3,4,5,a,b]

3insert()方法
比如
a.insert(1,66)
輸出結果是[1, 66, 2, 3, 4, 5, 'a', 'b']
4remove()方法
a.remove(66)
輸出的結果是:[1, 2, 3, 4, 5, 'a', 'b']

刪除列表裏面指定的值,如果沒有的話,報錯:
Traceback (most recent call last):
File "", line 1, in
ValueError: list.remove(x): x not in list
4pop方法
a.pop()
輸出的結果是'b'
a.pop(2)
輸出的結果是3
如果你沒有指定參數的話,默然是返回列表的最後一個字符,如果指定的話,返回當前指定的索引的值
5index方法
a.index(2)

三 解析式

 

python 列表解析我感覺是python非常靈活的一個地方,一開始接觸它的時候,特別是之前學過其它的語言,
你會感覺很不習慣,怎麼看怎麼不對勁,老是覺的哪個地方怪怪的,這就是列表解析的魔力所在。

python列表解析屬於python的迭代中的一種,相比python for循環速度會快很多。下面看下python列表解析
是怎麼工作的。
example:
a = [x+2 for x in range(10)]
print a
輸出的結果:
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

下面說下上面這個例子的執行過程:
python會在解釋器裏對range(10)進行迭代,依次把列表裏的內容取出來,賦值給最左邊的x,然後執行x+2的操作,
並且把執行好的結果保存在列表裏。等range(10)迭代完以後就新生成了一個列表,結果就是[2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
從上面可以看出,這也是建立python 列表的一個方法。

上面的例子如果用python for 循環來實現,那會是什麼樣的呢?
a = []
for i in range(10):
a.append(i+2)

print a

輸出的結果:
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

從上面可以看的出來,python列表解析比python for循環解析列表的代碼量會更少,解析速度會更快,寫起來也更酷,自己單獨寫
腳本的話,會非常的簡便,但是它也有不足之處,它的可讀性不太好,特別是在團隊開發的話,適當的還是少用點,這樣通用性比較好,對大家也有好處。

如果你對python列表或者python列表操作方法 有興趣的話,可以看看!

感謝老王

發佈了71 篇原創文章 · 獲贊 7 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章