數(shù)據(jù)類型-列表
列表
是python中最常用的容器類型之一钥星,由一對中括號
包裹,括號里面可以存放多個(gè)元素,元素與元素之間用逗號
分割, 元素與元素之間可以為不同數(shù)據(jù)類型
1.特點(diǎn)
-
可變的數(shù)據(jù)類型
: 列表中的元素是可變的
满着,列表本質(zhì)存放的只是元素的內(nèi)存地址
谦炒,改變元素就是改變內(nèi)存地址的指向
-
有序的序列
: 存放在列表中的元素是有序的
,第一個(gè)元素的索引位置為0
,往后累加1
列表也可以進(jìn)行索引也切片操作
示例
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']]
切片和索引的特點(diǎn)和字符串一樣风喇,
索引
需注意越界問題
3 列表常見操作
3.1 增加
-
append()
: 向列表最后一個(gè)位置追加元素
語法
列表序列.append(數(shù)據(jù))
示例
name_list = ['Tom', 'Lily', 'Rose']
name_list.append('wuchang')
# 結(jié)果:['Tom', 'Lily', 'Rose', 'wuchang']
name_list.append(["cross", "action"])
# 結(jié)果:['Tom', 'Lily', 'Rose', 'wuchang', ['cross', 'action']]
append()
追加的數(shù)據(jù)是一個(gè)序列
编饺,則追加整個(gè)序列到列表
-
extend()
: 追加數(shù)據(jù)至列表結(jié)尾,如果數(shù)據(jù)是一個(gè)序列响驴,則將這個(gè)序列的每一個(gè)元素逐一添加到列表
語法
列表序列.extend(數(shù)據(jù))
示例
name_list = ['Tom', 'Lily', 'Rose']
name_list.extend('wuchang')
# 結(jié)果: ['Tom', 'Lily', 'Rose', 'w', 'u', 'c', 'h', 'a', 'n', 'g']
name_list.extend(["cross", "action"])
# 結(jié)果: ['Tom', 'Lily', 'Rose', 'w', 'u', 'c', 'h', 'a', 'n', 'g', 'cross', 'action']
-
insert()
: 在列表指定位置
插入元素
語法
列表序列.insert(下標(biāo)位置透且,數(shù)據(jù))
name_list = ['Tom', 'Lily', 'Rose']
name_list.insert(2, 'wu_chang')
# 結(jié)果:['Tom', 'Lily', 'wu_chang', 'Rose']
3.2 刪除
-
pop()
: 根據(jù)下標(biāo)刪除數(shù)據(jù),并返回該數(shù)據(jù)豁鲤,不傳下標(biāo)默認(rèn)為最后一個(gè)數(shù)據(jù)
語法
列表序列.pop(下標(biāo))
示例
name_list = ['Tom', 'Lily', 'Rose']
name = name_list.pop(1)
print(name)
# 結(jié)果: Lily
print(name_list)
# 結(jié)果: ['Tom', 'Rose']
傳入下標(biāo)時(shí)需注意
下標(biāo)越界
,否則拋出異常IndexError
-
remove
: 刪除列表中第一個(gè)匹配到的數(shù)據(jù)
語法
列表序列.remove(數(shù)據(jù))
示例
name_list = ['Tom', 'Lily', 'Rose']
name_list.remove("Tom")
# 結(jié)果:['Lily', 'Rose']
如果數(shù)據(jù)不存在秽誊,拋出異常
ValueError
-
del
:刪除整個(gè)列表
,或者根據(jù)列表下標(biāo)刪除元素
語法
del 列表序列 或者 del列表序列[下標(biāo)]
示例
name_list = ['Tom', 'Lily', 'Rose']
del name_list[1]
# 結(jié)果:['Tom', 'Rose']
del name_list
print(name_list)
# NameError: name 'name_list' is not defined
del 目標(biāo)
刪除過后琳骡,命名空間已經(jīng)不存在該變量锅论,所以會(huì)報(bào)錯(cuò)NameError
-
clear()
:清空列表
,列表還在
楣号,會(huì)變成一個(gè)空列表
語法
列表序列.clear()
name_list = ['Tom', 'Lily', 'Rose']
name_list.clear()
# 結(jié)果:[]
3.3 修改
-
修改指定下標(biāo)數(shù)據(jù)
語法
列表序列[下標(biāo)]=數(shù)據(jù)
示例
name_list = ['Tom', 'Lily', 'Rose']
name_list = 'wu_chang
# 結(jié)果:['Tom', 'wu_chang', 'Rose']
-
reverse()
: 翻轉(zhuǎn)列表
語法
列表序列.reverse()
name_list = ['Tom', 'Lily', 'Rose']
name_list.reverse()
# ['Rose', 'Lily', 'Tom']
列表序列[::-1]
也可以達(dá)到同樣的效果
-
sort()
: 排序
語法
列表序列.sort(key=None, reverse=False)
reverse
表示排序規(guī)則
最易,reverse=True 降序
, reverse=False 升序(默認(rèn))炫狱,key
表示根據(jù)什么排序藻懒,多用在字典排序
示例
data_list = [20, 2, 6, 4, 7, 6, 7, 9, 9, 10]
data_list.sort()
# 結(jié)果:[2, 4, 6, 6, 7, 7, 9, 9, 10, 20]
會(huì)改變原列表的值
3.4 查詢 和 判斷
-
index()
: 返回指定數(shù)據(jù)所在位置的下標(biāo),不存在列表中拋出異常
語法*
列表序列.index(數(shù)據(jù)视译,開始位置下標(biāo)嬉荆,結(jié)束位置下標(biāo))
示例
name_list = ['Tom', 'Lily', 'Rose']
print(name_list.index('Tom')
# 結(jié)果:1
-
count()
: 統(tǒng)計(jì)指定數(shù)據(jù)在當(dāng)前列表中出出現(xiàn)的次數(shù)
name_list = ['Tom', 'Lily', 'Rose']
print(name_list.count('Tom'))
# 結(jié)果: 1
-
len()
:返回列表長度,可以根據(jù)這個(gè)函數(shù)知道列表中元素的個(gè)數(shù)
name_list = ['Tom', 'Lily', 'Rose']
print(len(name_list))
# 結(jié)果:3
-
in 與 not in
:判斷某個(gè)元素時(shí)候在某個(gè)序列中
酷含,返回布爾結(jié)果鄙早,存在返回True
, 不存在返回False
name_list = ['Tom', 'Lily', 'Rose']
print('Lily' in name_list)
# 結(jié)果:True
print('Lilys' in name_list)
# 結(jié)果:False
print('Lily' not in name_list)
# 結(jié)果:False
print('Lilys' not in name_list)
# 結(jié)果:True