- l = [1, 2, 3, 4]
- l = ["北京", "上海", "深圳"]
- l = [1, "二", 3.14, 'four']
- l = [1, 2, [3.1, 3.2], 4]
- 運算子:
- + += * *=
- + 用於拼接列表 l = [1, 2, 3] + [4, 5, 6]
- l =[1,2,3,4,5,6]
- += 用原列表寫右側列表拼接,並用變數繫結列表
- 語法:x += 可迭代物件
- 示例: x = [1, 2, 3]
- x += [4, 5, 6] , x += "abc" ,x += range(10, 20, 3)
- print(x) # [1, 2, 3, 4, 5, 6, 'a','b','c', 10, 13, 16, 19]
- * 生成重複的列表
x = [1, 2] * 3 # x = [1, 2, 1, 2, 1, 2]
- *= 用原列表生成重複的列表,並彡變數繫結新列表
x = [1, 2, 3]
x *= 4 # x = [1,2,3,1,2,3,1,2,3,1,2,3]
```
- 運算子:
- < <= > >= == !=
- 說明:
- 列表的比較規則與字串的比較規則相同
- 列表要求每個元素能依次進行比較,否則會出現型別錯誤
- 示例:
- [1, 2, 3] < [1, 3, 2] # true
- [1, 2] <= [1, 2, 3] # true
- [1, 4] >= [1, 2, 3] # true
- [1, 'two'] > ['two', 1] # typeerror 型別錯誤
- [1, "abc", 123] < [1, "123", "abc"] # ???
- 列表是可迭代物件:
- l = [1, 3, 5, 7]
- for x in l:
print(x) # 列印1 3 5 7
- in 判斷乙個值是否存在於列表中,如果存在返回true,否則返回false
- not in 返回值與in 相反
- 示例:
- x = [1, 'two', 3, '四']
- 3 in x # true
- "3" in x # false
- 10 in x # false
- 10 not in x # true
- 語法:
- 列表[整數表示式]
- 用法:
-等同於字串的索引,索引分正向索引和反向索引,規則寫字串索引規則完全相同
- 示例:
- l = [1, 2, 3, 4]
- print(l[1]) # 2
- print(l[-1]) # 4
- 列表的索引賦值
- 列表是可變的容器,可以通過索引賦值改變列表中的元素
- 語法:
- 列表[整數表示式] = 表示式
- 示例:
- x = [1, 2, 3, 4]
- x[2] = 3.1 # 修改列表中第3個元素的值為3.1
- print(x) # [1, 2, 3.1, 4s]
- 列表[:]
- 列表[::]
- 列表的切片取值返回乙個列表,規則等同於字串的切片取值規則
- 示例:
- x = [1, 2, 3, 4, 5, 6, 7, 8]
- y = x[1::2] # y = [2, 4, 6, 8]
- 作用:
- 可以改變原列表的排列,可以插入和刪除資料
- 可以用切片改變列表對應的元素的值
- 語法:
- 列表[切片] = 可迭代物件
- 說明:
-切片賦值的賦值運算子的右側必須是乙個可迭代物件
- 示例:
l = [1, 1.5, 2.5, 4]
l[1:3] = [2, 3] # l = [1, 2, 3, 4]
l[1:] = [100]
l = [3, 4]
l[0:1] = [1, 2, 3] # l = [1, 2, 3, 4]
l = [3, 4]
l[0:0] = [1, 2] # l = [1, 2, 3, 4]
l = [3, 4]
l[1:1] = [5] # l = [3, 5, 4]
l = [3, 4]
l[2:2] = [5, 6] # l = [3, 4, 5, 6]
l[1:3] = "abc" # l = [3, 'a', 'b', 'c', 6]
l[1:4] = range(4, 6) # l = [3, 4, 5, 6]
- 切片的注意事項:
對於步長不等於1的切片賦值,賦值運算子的右側的可迭代物件提供的資料元素的個數一定要等於切片切出的段數
l = [1, 2, 3, 4, 5, 6]
l[::2] = "abc" # 對的
l[::2] = "abcd" # 錯的
- len(x) 返回序列的長度
max(x) 返回序列的最大值元素
min(x) 返回序列的最小值元素
sum(x) 返回序列中所有元素的和(元素必須是數值型別)
any(x) 真值測試, 如果序列中其中乙個元素值為真值則返回true
all(x) 真值測試,如果棄於列中所有元素都為真值才返回true
- 淺拷貝 shallow copy
淺拷貝是指在複製過程中,只複製一層變數,不會複製深層變數繫結的物件的複製過程
- 如:
l1 = [1, 2, [3.1, 3.2]]
l2 = l1.copy()
l2[2][0] = 3.14
print(l2) # [1, 2, [3.14, 3.2]]
print(l1) # [1, 2, [3.14, 3.2]]
-深拷貝 deep copy 依次複製所有依懶的物件
- 如:
import copy # 匯入複製模組
l1 = [1, 2, [3.1, 3.2]]
l2 = copy.deepcopy(l1)
l2[2][0] = 3.14
print(l2) # [1, 2, [3.14, 3.2]]
print(l1) # [1, 2, [3.1, 3.2]] # l1不變
- 見:help(list)
|方法|意義|
l.index(v [, begin[, end]]) 返回對應元素的索引下標, begin為開始索引,end為結束索引,當 value 不存在時觸發valueerror錯誤
l.insert(index, obj) 將某個元素插放到列表中指定的位置
l.count(x) 返回列表中元素的個數
l.remove(x) 從列表中刪除第一次出現在列表中的值
l.copy() 複製此列表(只複製一層,不會複製深層物件)
l.extend(lst) 向列表追加另乙個列表
l.clear() 清空列表,等同於 l[:] =
l.sort(reverse=false) 將列表中的元素進行排序,預設順序按值的小到大的順序排列
l.reverse() 列表的反轉,用來改變原列表的先後順序
l.pop([index]) 刪除索引對應的元素,如果不加索引,預設刪除最後元素,同時返回刪除元素的引用關係
python基礎教程Day06
每個人的生活和工作都充滿了迴圈,很多時候,迴圈意味著重複和枯燥。比如你要手動給300個人發資訊,比如她要一遍一遍地給不認真的人費勁口舌解釋同樣的事情,又比如他一成不變 如同一潭死水般的生活。一成不變的生活終歸需要你自己去打破迴圈,但工作的事,就大可讓計算機幫一幫我們了。與人類不同,計算機不怕苦也不怕...
Python基礎 day06 元組
tuple 元組 元組與字串 列表有很多共同屬性,像索引和切片,它們都是序列資料型別的兩個基本組成,下面我們在學一種序列資料型別 元組。元組的基本操作 建立元組 python中,元組 tuple 用一對小括號 表示,元組內的各元素以逗號分隔。栗子 t print type t 結果 t1 蘭博基尼 ...
Python之路 Day06函式
p 函式的定義 程式設計裡面的函式定義是 def作為關鍵字 def test x the function definitions x 1 return x def 定義函式的關金子 test 函式名 內可定義的形參 文件描述 非必要,但是強烈建議為你的函式新增描述資訊 x 1 泛指 塊或程式處理邏...