本節我們接着講list類型:
這個系列教程建議對照着視頻學習,以下僅爲課件內容。
本節課程的視頻和實例源碼下載方式:點擊->我的主頁,查看個人簡介。
我儘量堅持每日更新一節。
列表是python中非常常用的一個數據結構,它的語法如下:
[item1, item2, item3, …]
由中括號將所有列表元素括起來,不同的元素之間通過逗號分隔。
列表中的元素item,支持幾乎所有類型的數據,並且同一個列表中的所有元素可以是不同的數據類型。所以列表使用起來會非常靈活。用過C語言數組結構的同學應該知道,數組結構只能存儲同一類型的元素,比如整型數組、字符串數組等等。另外,C語言的數組結構一旦初始化之後,是不能動態擴容的。C語言也可以實現列表功能,但它不是C語言的標準數據類型。相比較起來,Python的數據類型要強大和靈活得多。
列表本質上是一種序列,前面我們學習的string字符串本質上也是一種序列,還有下一節的tuple元組也是序列。我們來看看序列都有一些什麼樣的共性呢?
- 序列具備索引,正向索引和反向索引,前面字符串截取時我們學習過。
- 序列都支持切片(分割、截取)。
- 序列具備一些通用的操作(加、乘、檢查成員)
通過下來的例子我們演示列表的常用操作:
# author: Tiger, wx ID:tiger-python
# file: ./5/5_5.py
"""
演示列表的操作
"""
# list 列表
list_1 = ['hello', 100, ['跟我一起學', 4]] # 支持不同類型的item,可以嵌套list
list_2 = ['python', '!']
print(list_1[0:2]) # 截取的方式和字符串一致
print(list_1[0:-2])
print(list_1[0: 1])
print(list_1[0])
print(len(list_1)) # 獲取列表的長度
# 列表連接
list_3 = list_1 + list_2
print(list_3)
# 使用乘法讓列表重複n次
list_4 = list_2 * 3
print(list_4)
# 判斷一個元素是否存在於列表中
print('python' in list_2) # True
# 判斷一個元素在列表中出現的次數
print(list_4.count('python'))
# 獲取列表中最大最小值,求和
list_5 = [1, 2, 4, 10, 90]
print(max(list_5))
print(min(list_5))
print(sum(list_5))
# 列表的增刪改操作
list_5.append(100) # 在列表尾增加元素100
print(list_5)
list_5.insert(1, 'insert_obj') # 把元素插入到索引爲1的位置
print(list_5)
list_6 = ['hello', 'python']
list_5.extend(list_6) # 在列表後面追加另外一個列表
list_5[0] = 200 # 將索引爲0的元素修改爲200
print(list_5)
del list_5[0] # 刪除索引爲0的元素
print(list_5)
list_5.pop(2) # 移除索引爲2的元素,如果不填寫索引值,則默認移除列表最後一個元素
print(list_5)
list_5.remove('insert_obj') # 移除一個元素,注意這裏指定的是元素的值。如果列表中有多個相同的值,則只移除第一個匹配項
print(list_5)
list_5.clear() # 清空整個列表
print(list_5)
# 列表的排序操作
list_7 = [100, 99, 27, 198, 3]
list_7.reverse() # 列表反向排列
print(list_7)
list_7.sort() # 列表升序排列
print(list_7)
list_7.sort(reverse=True) # 列表降序排列
print(list_7)
由於同一個列表可以支持不同的元素,所以某些列表操作會有一些限制,大家在使用時需要注意。比如一些數值操作,如sum(list),它就無法支持list中包含字符串的情況,因爲字符串沒法求和。一個比較特殊的操作,最大值max和最小值min,它們支持字符串的比較,那麼它們是按照什麼規則來比較大小的呢?我們通過一小段代碼測試一下。
# author: Tiger, wx ID:tiger-python
# file: ./5/5_6.py
# max\min 如何比較字符串列表
list_1 = ['a', 'b', 'cat', '跟我一起學python']
print(ord('a'), ord('b'), ord('c'), ord('跟'))
print(max(list_1))
print(min(list_1))
可以看出,對於字符串列表,是按照元素的首字符對應的ASCII編碼值來比較大小的(參考字符編碼章節)。如果同一個列表中混雜了數字和字符串,則無法比較,會拋出異常。
列表是python中用得最多的標準數據類型,後面我們在講循環語句時還會介紹如果對列表進行迭代操作。大家應該對列表操作勤加練習,熟能生巧。
好了,下節我們繼續學習python的其它數據類型。
本節課程的視頻和實例源碼下載方式:點擊->我的主頁,查看個人簡介。
我儘量堅持每日更新一節。