列表(list)列表是一種無序的、可重複的資料序列,可以隨時新增、刪除其中的元素。
列表頁的每個元素都分配乙個數字索引,從 0 開始
列表使用方括號建立,使用逗號分隔元素
列表元素值可以是任意型別,包括變數
使用方括號對列表進行元素訪問、切片、修改、刪除等操作,開閉合區間為[)形式
列表的元素訪問可以巢狀
方括號內可以是任意表示式
建立列表
>>> hello = (1,2,3)
>>> li=[1,"
2",[3,"
a"],(1,3),"
hello"]
訪問元素
>>> print(li[3])
(1, 3)
>>> print(li[-2])
(1, 3)
>>> print(li[-3])
[3, 'a'
]切片訪問
格式: list_name[begin:end:step]
begin 表示起始位置(預設為0),
end 表示結束位置(預設為最後乙個元素),
step 表示步長(預設為1)
(li)
[1, '
2', [3, '
a'], (1, 3), '
hello']
>>> print(li[1:2])['
2']>>> print
(li[:])
[1, '
2', [3, '
a'], (1, 3), '
hello']
>>> print(li[2:])
[[3, '
a'], (1, 3), '
hello']
>>> print(li[1:-1:2])['
2', (1, 3)]
訪問內嵌 list 的元素:
>>> li = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ['
a', '
b', 'c'
]]>>> print(li[1:-1:2][1:3])
[3, 5]
>>> print(li[-1][1:3])['
b', 'c'
]>>> print(li[-1][1])
b修改列表
通過使用方括號,可以非常靈活的對列表的元素進行修改、替換、刪除等操作。
>>> li = [0, 1, 2, 3, 4, 5]
>>> li[len(li) - 2] = 22
>>>li
[0, 1, 2, 3, 22, 5]
>>> li[3] = 33
>>>li
[0, 1, 2, 33, 22, 5]
>>> li[1:-1] = [9, 9]
>>>li
[0, 9, 9, 5]
>>> li[1:-1] =
>>>li
[0, 5]
刪除元素
可以用
del語句來刪除列表的指定範圍的元素。
>>> li = [0, 1, 2, 3, 4, 5]
>>> del li[3]
>>>li
[0, 1, 2, 4, 5]
>>> del li[2:-1]
>>>li
[0, 1, 5]
列表操作符
+用於合併列表
*用於重複列表元素
in用於判斷元素是否存在於列表中
for ... in
... 用於遍歷列表元素
>>> [1, 2, 3] + [3, 4, 5]
[1, 2, 3, 3, 4, 5]
>>> [1, 2, 3] * 2[1, 2, 3, 1, 2, 3]
>>> 3 in [1, 2, 3]
true
>>> for x in [1, 2, 3]: print
(x)... 12
3列表函式
len(list) 列表元素個數
max(list) 列表元素中的最大值
min(list) 列表元素中的最小值
list(seq) 將元組轉換為列表
>>> li = [0, 1, 5]
>>>max(li)
5>>>len(li)
3注: 對列表使用 max/min 函式,
2.x 中對元素值型別無要求,
3.x 則要求元素值型別必須一致。
列表方法
在列表末尾新增新的物件
list.count(obj)
返回元素在列表**現的次數
list.extend(seq)
在列表末尾一次性追加另乙個序列中的多個值
list.index(obj)
返回查詢物件的索引位置,如果沒有找到物件則丟擲異常
list.insert(index, obj)
將指定物件插入列表的指定位置
list.pop([index=-1]])
移除列表中的乙個元素(預設最後乙個元素),並且返回該元素的值
list.remove(obj)
移除列表中某個值的第乙個匹配項
list.reverse()
反向排序列表的元素
list.sort(cmp=none, key=none, reverse=false)
對原列表進行排序,如果指定引數,則使用比較函式指定的比較函式
list.clear()
清空列表 還可以使用
del list[:]、li = 等方式實現
list.copy()
複製列表 預設使用等號賦值給另乙個變數,實際上是引用列表變數。
列表推導式
列表推導式提供了從序列建立列表的簡單途徑。
通常應用程式將一些操作應用於某個序列的每個元素,用其獲得的結果作為生成新列表的元素,
或者根據確定的判定條件建立子串行。
每個列表推導式都在
for 之後跟乙個表示式,然後有零到多個 for 或 if
子句。返回結果是乙個根據表達從其後的
for 和 if
上下文環境中生成出來的列表。
如果希望表示式推導出乙個元組,就必須使用括號。
將列表中每個數值乘三,獲得乙個新的列表:
>>> vec = [2, 4, 6]
>>> [(x, x**2) for x in
vec]
[(2, 4), (4, 16), (6, 36)]
對序列裡每乙個元素逐個呼叫某方法:
>>> freshfruit = ['
banana
', '
loganberry
', '
passion fruit ']
>>> [weapon.strip() for weapon in
freshfruit]['
banana
', '
loganberry
', '
passion fruit']
用 if
子句作為過濾器:
>>> vec = [2, 4, 6]
>>> [3*x for x in vec if x > 3]
[12, 18]
>>> vec1 = [2, 4, 6]
>>> vec2 = [4, 3, -9]
>>> [x*y for x in vec1 for y in
vec2]
[8, 6, -18, 16, 12, -36, 24, 18, -54]
>>> [vec1[i]*vec2[i] for i in
range(len(vec1))]
[8, 12, -54]
列表巢狀解析:
>>> matrix =[
... [1, 2, 3],
... [4, 5, 6],
... [7, 8, 9],
... ]
>>> new_matrix = [[row[i] for row in matrix] for i in
range(len(matrix[0]))]
(new_matrix)
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
Python自學筆記 Python基礎知識
以 開頭,右邊的所有東西當做說明,而不是真正要執行的程式,起輔助說明作用 我是注釋,可以在裡寫一些功能說明之類的哦 print hello world 下面的 完成 列印一首詩 名字叫做 春江花月夜 作者,zgwxd 在程式的開頭寫入如下 這就是中文注釋 coding utf 8 print wxd...
Python3 學習筆記 基礎知識1
python3 基本語法 注釋 開頭,為注釋 基本io 函式print input 輸出到終端或從終端獲取,均為字串型別。可通過 int 等方式轉化。庫檔案匯入方式 import math 匯入math庫,使用方式 math.from math import 只是使用mat庫中的 函式時單獨提出,使...
python3基礎知識一
數字型別包括 int float bool complex 複數 還支援複數,複數的實部a和虛部b都是浮點型。數值計算 string 字串 eg print str 輸出字串 print str 0 1 輸出第乙個到倒數第二個的所有字元,下標前閉後開 print str 2 輸出從第三個開始的後的所...