總結(jié)
1.列表的相關(guān)操作
- 列表的數(shù)學(xué)運(yùn)算: + , *
'+ : 列表1 + 列表 2 - 將兩個(gè)列表中的元素合并產(chǎn)生一個(gè)新的列表:(不會(huì)修改原列表)'
加法運(yùn)算
print([1, 2, 3] + [10, 20, 30])
list1 = [11, 22, 33]
print(list1 + [100, 200], list1)
'* :列表 * N粉捻, N * 列表 - N是正整數(shù);列表中的元素重復(fù)N次產(chǎn)生一個(gè)新的列表'
乘法運(yùn)算
print(list1 * 3, list1)
- 列表的比較運(yùn)算: == ,!=, >, < , <=, >=
列表1 == 列表2鸿竖、列表1 != 列表2
兩個(gè)列表比較大小,不是比較列表的長(zhǎng)度婶恼,而是比較元素的大小
list2 = [1, 2, 3]
list3 = [1, 2, 3]
print(list2 == list3) # True
list3 = [1, 3, 2]
print(list2 == list3) # False
補(bǔ)充: is的用法
== -> 判斷兩個(gè)數(shù)據(jù)的值是否相等
is -> 判斷兩個(gè)數(shù)據(jù)的地址是否一樣
li_1 = [1, 2, 3]
li_2 = [1, 2, 3]
print(li_1 == li_2)
print(li_1 is li_2) # li_1 is li_2 相當(dāng)于: id(li_1) == id(li_2)
判斷大小(不是列表的長(zhǎng)度稚配,而是判斷列表中元素的大小)
print([1, 2, 3, 4, 5] > [2, 3]) # False
print([10, 2, 3, 4, 5] > [2, 3]) # True
- in和not in
元素 in 列表 - 判斷列表中是否存在指定的元素
元素 not in 列表 - 判斷列表中是否不存在指定的元素
print(60 in [10, 20, 30, 40]) # False
print(10 in [10, 20, 30, 40]) # True
4.內(nèi)置函數(shù):max(序列), min(序列), sum(序列), len(序列),list(序列)
max和min要求序列中的元素類型必須一致;并且元素支持比較運(yùn)算符
sum要求序列中的元素必須是數(shù)字
list(序列) - 只有容器型數(shù)據(jù)類型才能轉(zhuǎn)換成列表;將序列中的元素作為
列表的元素產(chǎn)生一個(gè)新的列表
print(max([10, 20, 30, 40, 50]))
print(min([10, 20, 30, 40, 50]))
print(sum([10, 20, 30, 40, 50]))
print(sum(range(1, 101)))
print(list("abc"))
print(list(range(5)))
列表方法
1.列表.count(元素) - 統(tǒng)計(jì)列表中指定元素的個(gè)數(shù),返回一個(gè)數(shù)字
nums = [23, 45, 12, 23, 69, 56, 23, 59, 45]
print(nums.count(23)) # 3
2.列表.extend(序列) - 將序列中的元素添加到列表的最后畅涂,沒(méi)有返回值
nums = [1, 2, 3]
nums.extend([10, 20])
print(nums)
3.列表.index(元素) - 獲取元素在列表中的正下標(biāo),如果元素有多個(gè)道川,只取第一個(gè)
nums = [23, 45, 12, 23, 69, 56, 23, 59, 45]
print(nums.index(23))
4.列表.reverse() - 讓列表倒序
nums = [23, 45, 12, 23, 69, 56, 23, 59, 45]
nums.reverse()
print(nums)
5.排序
5.1 列表.sort() - 將列表中的元素從小到大排序
5.2 列表.sort(reverse = True) - 將列表中的元素從大到小排序
注意:列表中的元素類型必須一樣,并且元素支持比較運(yùn)算符,不會(huì)產(chǎn)生新的列表
nums = [23, 45, 12, 23, 69, 56, 23, 59, 45]
nums.sort()
print(nums)
nums.sort(reverse=True)
print(nums)
內(nèi)置函數(shù) : sorted(序列)
sorted(序列) - 對(duì)序列中的元素從小到大排序午衰,產(chǎn)生一個(gè)新的列表
sorted(序列,reverse = True) - 對(duì)序列中的元素從大到小排序,產(chǎn)生一個(gè)新的列表
nums = [23, 45, 12, 23, 69, 56, 23, 59, 45]
new_nums = sorted(nums)
print(new_nums)
6.清空列表
列表.clear()
nums = [23, 45, 12, 23, 69, 56, 23, 59, 45]
nums.clear()
print(nums)
7.復(fù)制列表 列表.copy() - 和列表[:]的效果一樣冒萄,拷貝列表中的元素產(chǎn)生
- 一個(gè)新的列表臊岸。這兒的拷貝是淺拷貝
nums = [1, 2, 3]
new_num_1 = nums.copy()
nums.append(100)
print(new_num_1)
nums = [1, 2, 3]
new_num_2 = nums * 1
print(nums is new_num_2) # False
元組
什么是元組(tuple)
元組就是不可變的列表
元組是容器型數(shù)據(jù)類型(序列),將()作為容器的標(biāo)志,多個(gè)元素用逗號(hào)隔開(kāi):
(元素1, 元素2, ..., 元素n)
特點(diǎn):不可變(不支持增刪改),有序的(支持下標(biāo)操作)
元組中元素 - 和列表要求一樣
1.元組的表示
a.單個(gè)元素的元組:(元素,)
tuple_1 = ()
tuple_2 = (10,)
b. 單獨(dú)表示一個(gè)元組值的時(shí)候,小括號(hào)可以省略
tuple_3 = 1, 2, 3, 4
print(tuple_3, type(tuple_3))
2.獲取元組中的元素
列表中獲取元素的方式元組都支持;注意,切片的結(jié)果是元組
weeks = "周一", "周二", "周三", "周四", "周五", "周六", "周日"
#a.獲取單個(gè)元素
print(weeks[1])
print(weeks[-1])
# b.切片
print(weeks[1:4])
# c.遍歷
for week in weeks:
print(week)
for index in range(len(weeks)):
print(index, weeks[index])
d.獲取部分元素: 變量1, 變量2, 變量3,... = 元組
用變量去獲取元組中元素的值(要求前面變量的個(gè)數(shù)和元組中元素的個(gè)數(shù)一致)
tuple_4 = [10, 20]
x, y = tuple_4
print(x, y)
e.語(yǔ)法:多個(gè)變量某一個(gè)變量前帶號(hào) = 元組
讓不帶號(hào)的變量去元組中獲取援助尊流,剩下的全部給帶號(hào)的變量(帶*號(hào)的變量會(huì)變成列表)
student_1 = ('小馬', 18, 'syu001', 23, 89, 90, 89)
name, age, study_id, *scores = student_1
print(name, age, study_id, scores)
*x, y, z = student_1
print(x, y, z)
3.元組相關(guān)的操作: 和列表一樣
_tuple1 = (1, 2, 3)
_tuple2 = (4, 5, 6)
_tuple3 = _tuple1 + _tuple2
print(_tuple3)
_tuple3 = _tuple2 * 2
print(_tuple3)
print(max(_tuple3))
print(len(_tuple3))
數(shù)字
math是標(biāo)準(zhǔn)庫(kù)(python內(nèi)置的模塊)帅戒,提供數(shù)學(xué)運(yùn)算相關(guān)的方法
import math
python中數(shù)字相關(guān)的類型有:int(整形),float(浮點(diǎn)型),bool(布爾),complex(復(fù)數(shù))
1.整型
所有的整數(shù)對(duì)應(yīng)的類型就是整型,python3.x中整型對(duì)應(yīng)的數(shù)據(jù)類型只有int
python2.x除了int還有l(wèi)ong
int(數(shù)據(jù)) -> 將數(shù)據(jù)轉(zhuǎn)換成整數(shù).所有的小數(shù),布爾值和部分字符串可以轉(zhuǎn)換成整數(shù)
字符串中只有去掉引號(hào)后本身就是一個(gè)整數(shù)的字符串才能轉(zhuǎn)換成整型
print(int("45"), int("+100"), int("-45"))
2.浮點(diǎn)型
所有的小數(shù)對(duì)應(yīng)的類型就是浮點(diǎn)型,浮點(diǎn)型對(duì)應(yīng)的數(shù)據(jù)類型只有float崖技,
支持科學(xué)計(jì)數(shù)法: 3e4, 1.25e2, 2e-3
float(數(shù)據(jù)) - 整型逻住、布爾和部分字符串可以轉(zhuǎn)換成浮點(diǎn)型
字符串中只有去掉引號(hào)后本身就是一個(gè)數(shù)字的字符串才能轉(zhuǎn)換成浮點(diǎn)型
print(3e4)
print(1.25e2)
print(float('12.8'))
3.布爾
布爾中的True把本質(zhì)就是整數(shù)1
布爾中的False把本質(zhì)就是整數(shù)0
bool(數(shù)據(jù)) - 所有的數(shù)據(jù)都能轉(zhuǎn)換成布爾;所有為0為空的值都會(huì)轉(zhuǎn)換成False,其它都是True
# print(1 and 2)
# print(2 and 1)
# print(2 and 0)
# print(True and False)
# print(False and True)
nums = [2]
if nums:
print("空")
else:
print("T")
4.復(fù)數(shù)
由實(shí)部和虛部組成的數(shù)字叫復(fù)數(shù):a + bj(a是實(shí)部施流、b是虛部,j是虛數(shù)單位),對(duì)應(yīng)的類型
是complex;python直接支持復(fù)數(shù)的運(yùn)算
b = 10 + 1j # 虛部不能省略
c = 10j
num1 = 2 + 3j
num2 = 4 + 2j
print(num1 + num2)
print(num1 * num2)
5.math模塊
math.方法
隨機(jī)模塊random
import random
python中內(nèi)置了一個(gè)模塊叫random,提供了和隨機(jī)操作相關(guān)的方法
1.random.randint(M,N) -- 產(chǎn)生M到N的整數(shù)
print(random.randint(0, 10))
2.random.random() -- 產(chǎn)生0到1的隨機(jī)數(shù)(小數(shù),0可以取到,1取不到)
print(random.random())
3.random.randrange(M,N,step) -- 產(chǎn)生序列range(M,N,step)中的任意一個(gè)整數(shù)
print(random.randrange(0, 10, 2))
4.random.choices(序列,k = N) --在序列中隨機(jī)獲取N個(gè)元素,以列表形式返回,N默認(rèn)是1
num = [1, 2, 3]
print(random.choices(num, k=2))
5.random.shuffle(列表) -- 隨機(jī)打亂列表中列表元素的位置,只支持列表操作鄙信,
num_1 = [1, 2, 3, 4, 5, 6]
random.shuffle(num_1)
print(num_1)