1.列表相關(guān)運(yùn)算
數(shù)學(xué)運(yùn)算:‘=’,‘’
列表1 + 列表2 :將兩列表中元素合并產(chǎn)生新的列表,(原列表不會(huì)產(chǎn)生改變)
列表正整數(shù) :列表重復(fù)n次產(chǎn)生一個(gè)新列表(原列表不會(huì)產(chǎn)生改變)
比較運(yùn)算: == ,!= 兩列表一只
<,>,<=,>= 只支持相同位置上元素相同的兩個(gè)列表
2.內(nèi)置函數(shù)
len(列表),sum(數(shù)字列表), max(列表),min(列表)
list(數(shù)據(jù))- 將指定數(shù)據(jù)轉(zhuǎn)換成列表,序列型數(shù)據(jù)
是將序列中的元素作為列表元素
3.相關(guān)方法
1)列表.count(元素)
2)列表.extend(序列)- 將序列中的元素添加到列表中
3)列表.index(元素) - 獲取指定元素在列表中的下標(biāo),如果有多個(gè)僅獲取第一個(gè)
4)列表.reverse - 將列表中的元素倒敘,不會(huì)產(chǎn)生新列表
補(bǔ)充:內(nèi)置函數(shù):reverse(序列) - 將序列中的元素倒敘產(chǎn)生一個(gè)新的迭代器,原序列不會(huì)進(jìn)行修改
5)列表.sort() - 對(duì)列表進(jìn)行升序排序(元素類型相同并且支持比較運(yùn)算)
列表.sort(reverse = True)
6) 列表.copy() - 產(chǎn)生一個(gè)新的列表,列表中元素與原列表相同,相當(dāng)于 列表[:]
id(變量) - 查看變量中實(shí)質(zhì)存儲(chǔ)的地址
python所有變量本質(zhì)實(shí)質(zhì)都是直接保存數(shù)據(jù)在內(nèi)存中的地址
問題:通過元素刪除的時(shí)候可能出現(xiàn)刪不干凈的問題
scores = [10, 20, 90, 45,10]
#刪除列表中所有小于60的數(shù)字
for item in scores:
if item < 60:
scores.remove(item)
print(scores)
for item in scores[:]:
if item < 60:
scores.remove(item)
print(scores)
# 問題2:通過下標(biāo)刪除滿足條件元素時(shí),出現(xiàn)下標(biāo)越界的錯(cuò)誤
scores = [10, 20, 90, 45, 10]
scores1 = scores.copy()
for index in range(len(scores)):
if scores1[index] < 60:
scores.remove(scores1[index])
print(scores)
scores = [10, 20, 90, 45, 10]
index = 0
while index < len(scores):
if scores[index] < 60:
del scores[index]
continue
index +=1
print(scores)
1.什么是元祖(tuple)
.不可變的列表,作為序列不可變(不支持增刪改)但是有序(支持下標(biāo)操作)
(元素1,元素2,元素3,元素4) , 元素的要求和列表一樣
2.查 - 獲取元素(與列表相同)
3.數(shù)學(xué)運(yùn)算,比較運(yùn)算,in/not in , len(), max(), min(), sum(),與list相同
4.元祖專有的特點(diǎn)
1)一個(gè)元素的元祖:需要在元素后加逗號(hào)
tu1 = 'abc',
print(type(tu1))
2)元祖的值可以不要小括號(hào),直接將多個(gè)元素,用逗號(hào)隔開,同樣表示元祖
tup2 = 10, 20, 'abc'
3)讓變量的個(gè)數(shù)與元祖中元素的個(gè)數(shù)保持一致,可以讓變量依次取出元祖中的元素
point = (100, 200)
x, y = point
3.2)多個(gè)變量獲取元祖元素的時(shí)候,可以在某一個(gè)變量前將這個(gè)變量變?yōu)閘ist獲取除了不帶的變量,獲取剩下的數(shù)據(jù)
注意:帶*變量有且只能有一個(gè)
student = '小明,30, 60, 175,70'
name, age, *scores, height = student
1.什么是字典
字典是python內(nèi)置的一個(gè)容器型數(shù)據(jù)類型,可變(支持增刪改),無序(不支持下標(biāo)操作)
{鍵值對(duì)1,鍵值對(duì)2,...} = {鍵1:值1,鍵2:值2,...}
鍵(key):a.不可變;b.唯一
值(value):和列表元素的要求一樣
注意:鍵值對(duì)是成對(duì)出現(xiàn);字典存數(shù)據(jù),實(shí)質(zhì)要存的是值,鍵是值得索引
from typing import Dict, List, Union
dict1 = {'a': 100, 'b': 'abc', 'c': [1, 2, 3], 'd': 'ss'}
2.什么時(shí)候用字典
如果同時(shí)保存多個(gè)數(shù)據(jù)具有相同意義的數(shù)據(jù),用列表;如果同時(shí)保存多個(gè)數(shù)據(jù)的意義不同,就使用字典
3.查 - 獲取值 None - python中的關(guān)鍵字,表示空和沒有的意思
1)獲取單個(gè)值:a.字典[key] - 獲取字典中指定key 對(duì)應(yīng)的值
b.字典.get(key) - 獲取字典中指定key 對(duì)應(yīng)的值,如果key值不存在,返回None
b.字典.get(key,默認(rèn)值) - 獲取字典中指定key 對(duì)應(yīng)的值,如果key值不存在,返回默認(rèn)值
2)遍歷
直接遍歷字典拿到的是key
dict2 = {'a': 100, 'b': 'abc', 'c': [1, 2, 3]}
for x in dict1:
print(x, dict1[x])
for x in dict1.values():
print(x)
for x in dict1.keys():
print(x, dict1[x])
for key, value in dict1.items():
print(key, value)
4.增/改 - 添加/修改鍵值對(duì)
字典[key] = value - key不存在時(shí),添加鍵值對(duì),key存在時(shí),修改key對(duì)應(yīng)的值
film.setdefault(key.value) - 只能添加值,不能修改值
5.刪
del 字典[key] - 刪除字典中key對(duì)應(yīng)的鍵值對(duì),如果key不存在會(huì)報(bào)錯(cuò)
字典.pop(key) - 從字典中取出key對(duì)應(yīng)的鍵值對(duì)
6.相關(guān)運(yùn)算
字典不支持?jǐn)?shù)學(xué)運(yùn)算
只支持比較運(yùn)算 ==/!= ,判斷鍵值對(duì)個(gè)數(shù)與鍵值是否相等,不用判斷順序
in / not in
key in 字典 - 判斷字典中是否存在某個(gè)key值對(duì)應(yīng)的鍵值對(duì)
len(),max(),min() - 比較key值要求key值類型相同
dict(序列) - 序列中的元素為小序列,小序列中有兩個(gè)元素且第一個(gè)元素為不可變?cè)?br>
list/tuple(字典) - 將字典的key取出作為元素
7.相關(guān)方法
1)字典.clear() - 清空字典
2)字典.copy() - 復(fù)制字典,產(chǎn)生一個(gè)新的字典
3)dict.fromkeys(序列,值) - 創(chuàng)建一個(gè)新的字典,序列中的元素作為key,所有元素的值相同
4)字典1.update(字典2) - 將字典2中的鍵值對(duì)添加到字典1中,并且修改字典1總key相同的值