一甩牺、認(rèn)識(shí)列表
列表是python中的容器類型。有序的煌茬,可變的容器斥铺。(可變是列表中的元素和元素位置可變、個(gè)數(shù)可變)
元素:指的是列表中的每一個(gè)內(nèi)容可變
有序 -> 可以通過下標(biāo)來獲取元素
可變 -> 可以增刪改(查)
1.列表的聲明
聲明了一個(gè)列表坛善,列表中的三個(gè)元素(一個(gè)列表中的元素類型可以不一樣)
person = ['余婷',18,'女']
print(person)
[] --> 代表空列表
name = []
print(name,type[name])
2.將其他類型轉(zhuǎn)換成列表(只有序列類型才能轉(zhuǎn)換)
chars = list('abcdef')
print(chars)
numbers = list(range(10))
print(numbers)
二晾蜘、列表中的增刪改查
1.查(獲取列表元素)
a.獲取單個(gè)元素:列表[小標(biāo)]
b.獲取部分元素(切片):列表[下標(biāo)1:下標(biāo)2]/列表
[下標(biāo)1:下標(biāo)2:步進(jìn)]
c.遍歷(一個(gè)一個(gè)的獲取每個(gè)元素)
for item in tv_name:
print(item)
2.改(修改元素的值)
語法:列表名[下標(biāo)] = 新值
person = ['小明',35,'乒乓球']
person[1] = 25 # 將person列表中下標(biāo)為1的元素的值修改為25
3.增(增加列表的元素邻眷,添加元素)
注意:列表中元素的個(gè)數(shù)發(fā)生改變后,列表中每個(gè)元素的 下標(biāo)會(huì)重新分配
a.列表.attend(元素):在列表的最后插入一個(gè)元素
person.attend('男')
b.列表.insert(小標(biāo),元素):在指定下標(biāo)前插入一個(gè)元素
person.inser(0,'001')
4.刪(刪除列表中的元素)
a.del 列表(下標(biāo))
foods = ['辣條','棒棒糖','大蒜','火鍋','餅干']
del foods[2]
b.列表名.remove(元素)
foods = ['辣條','棒棒糖','大蒜','火鍋','餅干']
foods.remove('餅干')
c.列表.pop(下標(biāo)) --> 將列表中指定下標(biāo)對(duì)應(yīng)的元素取出來
foods = ['辣條','棒棒糖','大蒜','火鍋','餅干']
food = foods.pop(1)
練習(xí):將一個(gè)保存成績(jī)的列表中剔交,成績(jī)低于60的全部刪除
grade = [78, 59, 40, 90, 89, 45, 69, 30]
for x in grade[:]:
if x < 60:
grade.remove(x)
print(grade)
運(yùn)行結(jié)果:
[78, 90, 89, 69]
三肆饶、列表數(shù)據(jù)的存儲(chǔ)
值類型:變量存數(shù)據(jù)直接存值。例如:整型岖常,浮點(diǎn)型驯镊,布爾,字符串
引用類型:變量在存數(shù)據(jù)的時(shí)候腥椒,存的是數(shù)據(jù)在內(nèi)存中的地址
四阿宅、列表行管的運(yùn)算
1.+操作
列表1+列表2:將列表1中的元素和列表2中的元素合并產(chǎn)生一個(gè)新的列表
a = [1,2]
list = a + ['abc',100]
print(list)
運(yùn)行結(jié)果:
[1, 2, 'abc', 100]
2.*操作
列表*N:將列表中的元素重復(fù)N此,然后產(chǎn)生一個(gè)新列表
a = [1,2]
list = a * 3
print(list)
運(yùn)行結(jié)果:
[1, 2, 1, 2, 1, 2]
3.in / not in
元素 in 列表:判斷一個(gè)元素是否在列表中
print(10 in [1,2,3,10])
運(yùn)行結(jié)果:
True
4.獲取列表的長(zhǎng)度
len(序列)
grade = [90,78,87,65,93]
print(len(grade))
運(yùn)行結(jié)果:
5
5.相關(guān)方法
num = [1,2,1,11,1,20]
5.1列表.count(元素):統(tǒng)計(jì)指定元素在指定列表中有多少個(gè)
num.count(1)
5.2列表.extend(序列):將序列中的元素添加到列表中
num.extend(['abc'])
5.3列表.index(元素):獲取指定元素的第一個(gè)下標(biāo)
index = num.index(1)
5.4列表.pop():將列表中的最后一個(gè)元素從列表中取出來
item = num.pop()
5.5列表reverse():列表中的元素反序
num = [1,20,3,40,5]
num.reverse()
print(num)
運(yùn)行結(jié)果:
[5, 40, 3, 20, 1]
5.6列表.sort():對(duì)列表進(jìn)行排序(默認(rèn)升序)
列表笼蛛。sort(reverse = True):對(duì)列表進(jìn)行降序排序
num.sort(reverse = True)
5.7列表.clear():將列表中的元素全部清除
num.clear()
5.8列表.copy():將列表中的元素全部拷貝一份產(chǎn)生一個(gè)新的列表洒放,相當(dāng)于列表[:]
num = [1,2,3,4]
num1 = num.copy()
print(num1)
運(yùn)行結(jié)果:
[1, 2, 3, 4]
五、淺拷貝和深拷貝
淺拷貝:只是單純的將值拷貝(如果是對(duì)象就直接拷貝對(duì)象的地址)
深拷貝:會(huì)拷貝對(duì)象地址對(duì)應(yīng)的值滨砍,產(chǎn)生一個(gè)新的地址往湿,然后將新的地址進(jìn)行賦值
numbers1 = [1,2]
numbers = [numbers1,3,4,'abc']
# 淺拷貝
new_numbers1 = numbers.copy()
# 深拷貝
import copy
new_numbers2 = copy.deepcopy(numbers)
numbers1.append(100)
print(new_numbers1)
print(new_numbers2)
運(yùn)行結(jié)果:
[[1, 2, 100], 3, 4, 'abc']
[[1, 2], 3, 4, 'abc']
六、認(rèn)識(shí)元祖
tuple(元祖)
元祖就是不可變的列表惋戏。列表中除了和可變相關(guān)的內(nèi)容以外领追,其他的全部適用于元祖(不支持增加、刪除响逢、修改绒窑,只支持查找)
1. 聲明元祖
tuple1 = (1,2,3,10)
t2 = (100,)
注意:如果要寫一個(gè)元祖元素個(gè)數(shù)是1的字面量,需要在那一個(gè)元素后面加逗號(hào)
2.查相關(guān)的元素
t3 = ('red','yellow','green','pink')
print(t3[2])
print(t3[0:3])
for item in t3:
print(item)
3.特殊操作
point = (100,200,'red')
print(point[0],point[1])
# 通過兩個(gè)變量來獲取元素中唯一的兩個(gè)元素的值
x,y,color = point
# 通過在變量加*,獲取元祖/列表中的一部分元素值舔亭,結(jié)果是一個(gè)列表
user = ('小呂',90,98,56,'男')
name,*score,sex = user
# 多個(gè)值之間用逗號(hào)隔開些膨,對(duì)應(yīng)的數(shù)據(jù)也是元祖
a = 1, 2, 3, 4 # 相當(dāng)于 a = (1, 2, 3, 4 )
x,y = 100,200 # x,y = (100,200)