元祖和數(shù)字
1.列表相關(guān)操作
1.列表的數(shù)學(xué)運算:+, *
列表1 + 列表2 - 將兩個列表中的元素合并產(chǎn)生一個新的列表;(不會修改原列表)
列表N、N列表 - N是正整數(shù);列表中的元素重復(fù)N次產(chǎn)生一個新列表
加法運算
print([1, 2, 3] + [10, 20, 30])
乘法運算
print([1, 2, 3] * 3)
2.列表的比較運算:==, !=,>,<,>=,<=
列表1 == 列表2、列表1 != 列表2
兩個列表比較大小已球,不是比較列表的長度,而是比較元素的大小
print([1, 2, 3] == [2, 1, 3])
補充:is的用法
== → 判斷兩個數(shù)據(jù)的值是否相等
is → 判斷兩個數(shù)據(jù)的地址是否一樣
list1 = [1, 2, 3]
list2 = [1, 2, 3]
print([list1 is list2)
3.in和not in
元素 in 列表 - 判斷列表中是否存在指定的元素
元素 not in 列表 - 判斷列表中是否不存在指定的元素
print(60 in [23, 45, 12, 70])
4.內(nèi)置函數(shù):max(序列),min(序列),sum(序列),len(序列),list(數(shù)據(jù))
max和min要求序列中的元素類型必須一致;并且元素支持比較運算符
sum要求序列中的元素必須是數(shù)字
list - 只有容器型數(shù)據(jù)類型才能轉(zhuǎn)換成列表辅愿;將序列中的元素作為列表的元素產(chǎn)生一個新列表
print(max([23, 45, 78, 90, 32, 45]))
print(min([23, 45, 78, 90, 32, 45]))
print(sum([23, 45, 78, 90, 32, 45]))
print(sum(range(1, 101)))
print(list('abc'))
print(list(range(5)'))
2.列表方法
1.列表.count(元素) - 統(tǒng)計列表中指定元素的個數(shù)
nums = [1, 2, 3, 4, 5, 6, 7, 8, 7, 9]
print(nums.count(7))
2.列表.extend(序列) - 將序列中的元素添加到列表的最后
nums = [1, 2, 3]
nums.extend([10, 20])
nums.extend('hello')
nums.extend(range(100, 105))
print(nums)
3.列表.index(元素) - 獲取元素在列表中的正下標(biāo)(如果元素有多個只取第一個)
nums = [23, 89, 101]
print(nums.index(89))
4.列表.reverse() - 讓列表倒序(不會產(chǎn)生新的列表)
nums = [23, 89, 101]
nums.reverse()
5.排序
列表.sort() - 將列表中的元素從小到大排序
列表.sort(reverse=True) - 將列表中的元素從大到小排序
注意:列表中的元素類型必須一樣智亮,并且元素支持比較運算符;不會產(chǎn)生新的列表
nums = [23,89, 60, 89, 60, 1, 60, 23, 1]
nums.sort(reverse=True)
內(nèi)置函數(shù):sorted
sorted(序列) - 對序列中的元素從小到大排序点待,產(chǎn)生一個新的列表
nums = [11, 60, 32]
#按個位數(shù)大小排序
nums.sort(key= lambda num: num % 10)
new_nums = sorted(nums)
6.清空列表
nums = [23, 89, 60, 89, 60, 1, 60]
nums.clear()
7.列表.copy() - 和列表[:]的效果一樣阔蛉,復(fù)制列表中的元素產(chǎn)生一個新的列表;這兒的拷貝是淺拷貝
nums = [23, 89, 60, 89, 60, 1, 60]
new_nums = nums.copy()
3.元祖
元祖就是不可變的列表
1.
元祖是容器型數(shù)據(jù)類型(序列)亦鳞,將()作為容器的標(biāo)志馍忽,多個元素用逗號隔開:(元素1,元素2,元素3)
特點:不可變(不支持增刪改),有序的(支持下標(biāo)操作)
2.元祖中元素 - 和列表要求一樣
元祖的表示
單個元素的元祖
#表示一個元素的元祖燕差,一定要有逗號
tuple1 = ('abc',)
單獨表示一個元祖值的時候遭笋,小括號可以省略
tuple1 = 1, 2, 3, 4
tuple2 = 1,
獲取元祖中的元素
列表中獲取元素的方式元祖都支持
注意:元祖切片的結(jié)果是元祖
weeks = '周一', '周二', '周三', '周四', '周五', '周六', '周日'
print(weeks[1], weeks[-1])
for index in range(len(weeks)):
print(index, weeks[index])
獲取部分元素
變量1, 變量2, 變量3,... = 元祖
用變量去獲取元祖中的值(要求前面變量的個數(shù)和元祖中元素的個數(shù)一致)
tuple1 = (10, 20, 30)
x, y, z = tuple1
語法
多個變量某一個變量前帶乘號 = 元祖
讓不帶乘號的變量去元祖中獲取元素,剩下的全部給帶乘號的變量(帶的變量會變成列表)
student = ('小明', 18, 'stu001', 23, 89, 90, 89)
name, age, study_id *scores = student
x, y, *z, m = student
print(scores, z)
4.數(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ù)测暗、布爾值和部分字符串可以轉(zhuǎn)換成整數(shù)
字符串中去掉引號后本身就是一個整數(shù)的字符串才能轉(zhuǎn)換成整型
print(int('45'), int('-123'))
2.浮點型
所有的小數(shù)對應(yīng)的類型就是浮點型央串,浮點型對應(yīng)的數(shù)據(jù)類型只有float;支持科學(xué)計數(shù)法;
字符串中去掉引號后本身就是一個浮點數(shù)的字符串才能轉(zhuǎn)換成浮點型
print(float('23'))
3.布爾
布爾中True本質(zhì)就是整數(shù)1,F(xiàn)alse本質(zhì)是整數(shù)0
bool(數(shù)據(jù)) - 所有的數(shù)據(jù)都可以轉(zhuǎn)換成布爾;所有為0為空的值都會轉(zhuǎn)換成False碗啄,其它都會轉(zhuǎn)換成True
print(1+1,True+1,bool(1.5),bool(''),bool([1,2]))
4.復(fù)數(shù)
由實部和虛部組成數(shù)字叫復(fù)數(shù):a + bj(a是實部质和、b是虛部,j是虛數(shù)單位)稚字,對應(yīng)的類型是complex饲宿;python直接支持復(fù)數(shù)的運算
虛部是1不能省略,實部0可以省略
num1 = 2 + 3j
num2 = 4 - 2j
print(num1 + num2)
print(num1 * num2)
5.隨機模塊
random:提供了和隨機操作相關(guān)的方法
1.random.randint(M, N)(N可取到)
產(chǎn)生M~N的整數(shù)
2.random.random()
產(chǎn)生0~1的小數(shù)(1取不到)
3.random.randrange(M, N, step)
產(chǎn)生序列range(M, N, step)中的任意一個整數(shù)(N取不到)
4.random.choices(序列, k=N)
在序列中隨機獲取N個元素胆描,以列表形式返回瘫想,N默認(rèn)為1
5.random.shuffle(列表)
隨機打亂列表內(nèi)元素順序
import random
import random
# 10也能取到
print(random.randint(0, 10))
print(random.random())
print(random.randrange(0, 10, 2))
print(random.choices([1, 2, 3, 5, 8], k=2))
List = [1, 2, 3, 5, 8, 7]
random.shuffle(List)
print(List)