列表操作
1.列表的數(shù)學(xué)運算:+, *
列表1 + 列表2 - 將兩個列表中的元素合并并產(chǎn)生一個新的列表;(不會修改原來的列表)
列表 * N、N * 列表 - N是正整數(shù);列表中的元素重復(fù)N次產(chǎn)生一個新的列表
2.列表的比較運算:==, !=, >, <, >=, <=
列表1 == 列表2、列表1 != 列表2
, <, >=, <=
兩個列表比較大小,不是比較列表的長度,二而是比較元素的大小
3.in和not in
元素 in 列表 - 判斷列表中是否存在指定的元素
元素 not in 列表 - 判斷列表中是否不存在指定的元素
4.內(nèi)置函數(shù)max(序列)-求最大值, min(序列)-求最小值, sum(序列)-求和, len(序列)-求長度,list(序列) - 將序列轉(zhuǎn)換為列表
max和min要求序列中的元素類型必須一致,并且元素支持比較運算符
sum要求序列中的元素必須是數(shù)字
list(序列) - 只有容器型序列可以轉(zhuǎn)換成列表;將序列中的元素作為列表的元素產(chǎn)生一個新的列表
補充:is的用法
== -> 判斷兩個數(shù)據(jù)的值是否相等
is -> 判斷兩個數(shù)據(jù)的地址是否一樣
常用列表方法
1.列表.count(元素)
統(tǒng)計列表中指定元素的個數(shù)
2.列表.extend(序列)
將序列中的元素添加到列表的最后,沒有返回值
3.列表.index(元素)
獲取元素在列表中的正下標(biāo)(如果元素有多個,只取第一個,如果元素不存在會報錯)
4.列表.reverse()
讓列表倒序(不會產(chǎn)生新的列表)
5.排序
列表.sort() - 將列表中的元素從小到大排序
列表.sort(reverse=True) - 將列表中的元素從大到小排序
列表.sort(key = ...) - 定制排序規(guī)則(如key = lambda num: num%10)
注意:列表中的元素類型必須一樣,并且元素支持比較運算符;不會產(chǎn)生新的列表
sorted(序列) - 對序列中的元素從小到大排序,產(chǎn)生一個新的序列
sorted(序列,reverse=True) - 對序列中的元素從大到小排序,產(chǎn)生一個新的列表(對序列元素沒有要求)
6.清空列表
列表.clear() - 性能更好(不需要再開辟內(nèi)存,地址不變)
列表 = [] - 不推薦(開辟新內(nèi)存空間,地址要變)
7.列表.copy()
和列表[:]的效果一樣,拷貝列表中的元素產(chǎn)生一個新的列表。(這的拷貝是淺拷貝)
拷貝后,產(chǎn)生的列表擁有新地址
(列表2 = 列表*1也能做到一樣的效果)
元祖
1.什么是元祖(tuple)
元祖就是不可變的列表
概念 - 元祖是容器型數(shù)據(jù)類型(序列),將()作為容器的標(biāo)志,多個元素用逗號隔開:(元素1,元素2,元素3,...)
特點:不可變(不支持增刪改),有序的(支持下標(biāo)操作)
元祖中的元素:和列表要求一樣
元祖中元素的表示:
單個元素的元祖 tuple = (元素,)
單獨表示元祖的值時 ,可以去掉小括號
2.獲取元祖中的元素
列表中獲取元素的的方式元祖都支持
1)獲取單個元素
元祖index
2)切片
元祖[:](切片結(jié)果是元祖)
3)遍歷
for x in 元祖:
??操作
for index in range(len(元祖)):
??對元祖.[index]操作
4)分別獲取部分元素:變量1,變量,變量3,...= 元祖(列表也支持)
用變量去獲取元祖中元素的值(要求變量的個數(shù)與元祖中元素的個數(shù)一致)
5)語法:多個變量,其中某一個變量前帶 = 元祖(列表也支持)
讓沒有帶的變量去元祖中取元素,剩下的全部給帶的變量(結(jié)果該變量類型為列表)
3.元祖相關(guān)操作:和列表差不多
+, * , ==, !=, in, not in, max, min(), sum, tuple, len, sorted
數(shù)字類型
1.整型
所有的整數(shù)對應(yīng)的類型就是整型,python3.x中整型對應(yīng)的數(shù)據(jù)類型只有int(python2.x除了int還有l(wèi)ong)
int(數(shù)據(jù)) -> 將數(shù)據(jù)轉(zhuǎn)換成整數(shù)。所有的小數(shù)、布爾值和部分字符串可以裝換成整數(shù);字符串中去掉引號后本身就是一個整數(shù)的字符串才能轉(zhuǎn)換成整型
2.浮點型
所有小數(shù)對應(yīng)的類型就是浮點型,浮點對應(yīng)的數(shù)據(jù)類型只有float,支持科學(xué)計數(shù)法:3e, 1,25e2, 2e-3
float(數(shù)據(jù)) - 整型、布爾和部分字符串可以轉(zhuǎn)換成浮點型字符串中去掉引號本身就是數(shù)字的字符串才能轉(zhuǎn)換成浮點型
3.布爾
布爾中True的本質(zhì)就是整數(shù)1,F(xiàn)alse的本質(zhì)就是整數(shù)0
bool(數(shù)據(jù)) - 所有的數(shù)據(jù)都能轉(zhuǎn)換成布爾;所有為0為空的值:[], (), '', {}, None都會轉(zhuǎn)換成False,其他都是True
4.復(fù)數(shù)
由實部和虛部組成的數(shù)字叫復(fù)數(shù):a+bj(a是實部,b是虛部,j是虛數(shù)單位),對應(yīng)的數(shù)據(jù)類型就是complex;python直接支持復(fù)數(shù)的運算
(虛部是1不能省略)
5.math模塊
math.方法名
math是Python標(biāo)準(zhǔn)庫模塊
6.random隨機模塊
python內(nèi)置了一個模塊叫random,提供了和隨機操作相關(guān)的方法
1)random.randint(M,N) - 產(chǎn)生M~N的整數(shù)
2)random.random()- 產(chǎn)生0~1的隨機數(shù)(小數(shù),0可以取到,1不能)
3)random.randint(M, N, step) - 產(chǎn)生序列range(M. N, step)中的任意一個整數(shù)
4)random.choices(序列,k=N)- 在序列中隨機獲取N個元素,以列表的形式返回。N默認(rèn)是1
5)random.shuffle(列表) - 隨機打亂列表元素的位置