數據類型-列表
列表是python中最常用的容器類型之一,由一對中括號包裹,括號里面可以存放多個元素,元素與元素之間用逗號分割, 元素與元素之間可以為不同數據類型
1.特點
-
可變的數據類型: 列表中的元素是可變的,列表本質存放的只是元素的內存地址,改變元素就是改變內存地址的指向 -
有序的序列: 存放在列表中的元素是有序的,第一個元素的索引位置為0,往后累加1 列表也可以進行索引也切片操作
示例
data_list = ["Tom", 1, True, ["aa", "bb"]]
2. 索引 和 切片
data_list = ["Tom", 1, True, ['aa', 'bb']]
print(data_list[0]) # Tom
print(data_list[1]) # 1
print(data_list[::-1]) # [['aa', 'bb'], True, 1, 'Tom']
print(data_list[:-2]) # ['Tom', 1]
print(data_list[:20]) # ['Tom', 1, True, ['aa', 'bb']]
切片和索引的特點和字符串一樣,
索引需注意越界問題
3 列表常見操作
3.1 增加
-
append(): 向列表最后一個位置追加元素
語法
列表序列.append(數據)
示例
name_list = ['Tom', 'Lily', 'Rose']
name_list.append('wuchang')
# 結果:['Tom', 'Lily', 'Rose', 'wuchang']
name_list.append(["cross", "action"])
# 結果:['Tom', 'Lily', 'Rose', 'wuchang', ['cross', 'action']]
append()追加的數據是一個序列,則追加整個序列到列表
-
extend(): 追加數據至列表結尾,如果數據是一個序列,則將這個序列的每一個元素逐一添加到列表
語法
列表序列.extend(數據)
示例
name_list = ['Tom', 'Lily', 'Rose']
name_list.extend('wuchang')
# 結果: ['Tom', 'Lily', 'Rose', 'w', 'u', 'c', 'h', 'a', 'n', 'g']
name_list.extend(["cross", "action"])
# 結果: ['Tom', 'Lily', 'Rose', 'w', 'u', 'c', 'h', 'a', 'n', 'g', 'cross', 'action']
-
insert(): 在列表指定位置插入元素
語法
列表序列.insert(下標位置,數據)
name_list = ['Tom', 'Lily', 'Rose']
name_list.insert(2, 'wu_chang')
# 結果:['Tom', 'Lily', 'wu_chang', 'Rose']
3.2 刪除
-
pop(): 根據下標刪除數據,并返回該數據,不傳下標默認為最后一個數據
語法
列表序列.pop(下標)
示例
name_list = ['Tom', 'Lily', 'Rose']
name = name_list.pop(1)
print(name)
# 結果: Lily
print(name_list)
# 結果: ['Tom', 'Rose']
傳入下標時需注意
下標越界,否則拋出異常IndexError
-
remove: 刪除列表中第一個匹配到的數據
語法
列表序列.remove(數據)
示例
name_list = ['Tom', 'Lily', 'Rose']
name_list.remove("Tom")
# 結果:['Lily', 'Rose']
如果數據不存在,拋出異常
ValueError
-
del:刪除整個列表,或者根據列表下標刪除元素
語法
del 列表序列 或者 del列表序列[下標]
示例
name_list = ['Tom', 'Lily', 'Rose']
del name_list[1]
# 結果:['Tom', 'Rose']
del name_list
print(name_list)
# NameError: name 'name_list' is not defined
del 目標刪除過后,命名空間已經不存在該變量,所以會報錯NameError
-
clear():清空列表,列表還在,會變成一個空列表
語法
列表序列.clear()
name_list = ['Tom', 'Lily', 'Rose']
name_list.clear()
# 結果:[]
3.3 修改
-
修改指定下標數據
語法
列表序列[下標]=數據
示例
name_list = ['Tom', 'Lily', 'Rose']
name_list = 'wu_chang
# 結果:['Tom', 'wu_chang', 'Rose']
-
reverse(): 翻轉列表
語法
列表序列.reverse()
name_list = ['Tom', 'Lily', 'Rose']
name_list.reverse()
# ['Rose', 'Lily', 'Tom']
列表序列[::-1]也可以達到同樣的效果
-
sort(): 排序
語法
列表序列.sort(key=None, reverse=False)
reverse表示排序規(guī)則,reverse=True 降序, reverse=False 升序(默認),key表示根據什么排序,多用在字典排序
示例
data_list = [20, 2, 6, 4, 7, 6, 7, 9, 9, 10]
data_list.sort()
# 結果:[2, 4, 6, 6, 7, 7, 9, 9, 10, 20]
會改變原列表的值
3.4 查詢 和 判斷
-
index(): 返回指定數據所在位置的下標,不存在列表中拋出異常
語法*
列表序列.index(數據,開始位置下標,結束位置下標)
示例
name_list = ['Tom', 'Lily', 'Rose']
print(name_list.index('Tom')
# 結果:1
-
count(): 統(tǒng)計指定數據在當前列表中出出現的次數
name_list = ['Tom', 'Lily', 'Rose']
print(name_list.count('Tom'))
# 結果: 1
-
len():返回列表長度,可以根據這個函數知道列表中元素的個數
name_list = ['Tom', 'Lily', 'Rose']
print(len(name_list))
# 結果:3
-
in 與 not in:判斷某個元素時候在某個序列中,返回布爾結果,存在返回True, 不存在返回False
name_list = ['Tom', 'Lily', 'Rose']
print('Lily' in name_list)
# 結果:True
print('Lilys' in name_list)
# 結果:False
print('Lily' not in name_list)
# 結果:False
print('Lilys' not in name_list)
# 結果:True