新聞中心
本篇文章給大家?guī)砹岁P(guān)于python的相關(guān)知識,其中主要介紹了數(shù)據(jù)結(jié)構(gòu)的相關(guān)問題,包括了數(shù)字、字符串、列表、元組、字典等等的相關(guān)內(nèi)容,希望對大家有幫助。

推薦學(xué)習(xí):python視頻教程
-
整型(int) - 通常被稱為是整型或整數(shù),是正或負(fù)整數(shù),不帶小數(shù)點。Python3 整型是沒有限制大小的,可以當(dāng)作 Long 類型使用。布爾(bool)是整型的子類型。
-
浮點型(float) - 浮點型由整數(shù)部分與小數(shù)部分組成,浮點型也可以使用科學(xué)計數(shù)法表示(2.5e2 = 2.5 x 102 = 250)
-
復(fù)數(shù)( (complex)) - 復(fù)數(shù)由實數(shù)部分和虛數(shù)部分構(gòu)成,可以用a + bj,或者complex(a,b)表示, 復(fù)數(shù)的實部a和虛部b都是浮點型。
數(shù)字類型轉(zhuǎn)換
-
int(x) 將x轉(zhuǎn)換為一個整數(shù)。
-
float(x) 將x轉(zhuǎn)換到一個浮點數(shù)。
-
complex(x) 將x轉(zhuǎn)換到一個復(fù)數(shù),實數(shù)部分為 x,虛數(shù)部分為 0。
-
complex(x, y) 將 x 和 y 轉(zhuǎn)換到一個復(fù)數(shù),實數(shù)部分為 x,虛數(shù)部分為 y。x 和 y 是數(shù)字表達(dá)式。
數(shù)字運算
# + - * / %(取余) **(冪運算) # 整數(shù)除法中,除法 / 總是返回一個浮點數(shù), # 如果只想得到整數(shù)的結(jié)果,丟棄可能的分?jǐn)?shù)部分,可以使用運算符 // print(8 / 5) # 1.6 print(8 // 5) # 1 # 注意:// 得到的并不一定是整數(shù)類型的數(shù),它與分母分子的數(shù)據(jù)類型有關(guān)系 print(8 // 5.0) # 1.0 # 使用 ** 操作來進(jìn)行冪運算 print(5 ** 2) # 5的平方 25
字符串 str
字符串的查詢
-
index():查找子串substr第一次出現(xiàn)的位置,如果查找的子串不存在時,則拋出ValueErrorrindex()異常
-
rindex():查找子串substr最后一次出現(xiàn)的位置,如果查找的子串不存在時,則拋出ValueError()異常
-
find():查找子串substr第一次出現(xiàn)的位置,如果查找的子串不存在時,則返回-1
-
rfind():查找子串substr最后一次出現(xiàn)的位置,如果查找的子串不存在時,則返回-1
s = 'hello, hello'
print(s.index('lo')) # 3
print(s.find('lo')) # 3
print(s.find('k')) # -1
print(s.rindex('lo')) # 10
print(s.rfind('lo')) # 10
字符串大小寫轉(zhuǎn)換
-
upper():把字符串中所有字符都轉(zhuǎn)成大寫字母
-
lower():把字符串中所有字符都轉(zhuǎn)成小寫字母
-
swapcase():把字符串中所有大寫字母轉(zhuǎn)成小寫字母,把所有小寫字母都轉(zhuǎn)成大寫字母
-
capitalize():把第一個字符轉(zhuǎn)換為大寫,把其余字符轉(zhuǎn)換為小寫
-
title():把每個單詞的第一個字符轉(zhuǎn)換為大寫,把每個單詞的剩余字符轉(zhuǎn)換為小寫
s = 'hello, Python' print(s.upper()) # HELLO, PYTHON print(s.lower()) # hello, python print(s.swapcase()) # HELLO, pYTHON print(s.capitalize()) # Hello, python print(s.title()) # Hello, Python
字符串對齊
-
center():居中對齊,第1個參數(shù)指定寬度,第2個參數(shù)指定填充符,默認(rèn)是空格,如果設(shè)置寬度小于實際寬度則返回原字符串
-
ljust():左對齊,第1個參數(shù)指定寬度,第2個參數(shù)指定填充符,默認(rèn)是空格,如果設(shè)置寬度小于實際寬度則返回原字符串
-
rjust():右對齊,第1個參數(shù)指定寬度,第2個參數(shù)指定填充符,默認(rèn)是空格,如果設(shè)置寬度小于實際寬度則返回原字符串
-
zfill():右對齊,左邊用0填充,該方法只接收一個參數(shù),用于指定字符串的寬度,如果指定的寬度小于等于字符串的長度,返回字符串本身
s = 'hello,Python'
'''居中對齊'''
print(s.center(20, '*')) # ****hello,Python****
'''左對齊 '''
print(s.ljust(20, '*')) # hello,Python********
print(s.ljust(5, '*')) # hello,Python
'''右對齊'''
print(s.rjust(20, '*')) # ********hello,Python
'''右對齊,使用0進(jìn)行填充'''
print(s.zfill(20)) # 00000000hello,Python
print('-1005'.zfill(8)) # -0001005
字符串拆分、切片
拆分
- split(): 從字符串的左邊開始拆分
- rsplit():從字符串的右邊開始拆分
- 默認(rèn)的拆分字符是空格,返回值是一個列表
- 通過參數(shù) sep 指定拆分字符串的拆分符
- 通過參數(shù) maxsplit 指定拆分宇符串時的最大拆分次數(shù),在經(jīng)過最大次數(shù)拆分之后,剩余的子串會單獨做為一部分
s = 'hello word Python'
print(s.split()) # ['hello', 'word', 'Python']
s1 = 'hello|word|Python'
print(s1.split(sep='|')) # ['hello', 'word', 'Python']
print(s1.split('|', 1)) # ['hello', 'word|Python'] # 左側(cè)開始
print(s1.rsplit('|', 1)) # ['hello|word', 'Python'] # 右側(cè)開始
切片
s = 'hello,world' print(s[:5]) # hello 從索引0開始,到4結(jié)束 print(s[6:]) # world 從索引6開始,到最后一個元素 print(s[1:5:1]) # ello 從索引1開始,到4結(jié)束,步長為1 print(s[::2]) # hlowrd 從開始到結(jié)束,步長為2 print(s[::-1]) # dlrow,olleh 步長為負(fù)數(shù),從最后一個元素(索引-1)開始,到第一個元素結(jié)束 print(s[-6::1]) # ,world 從索引-6開始,到最后一個結(jié)束
字符串判斷相關(guān)
- isidentifier():判斷指定的字符串是不是合法的標(biāo)識符
- isspace():判斷指定的字符串是否全部由空白字符組成(回車、換行,水平制表符)
- isalpha():判斷指定的字符串是否全部由字母組成
- isdecimal():判斷指定字符串是否全部由十進(jìn)制的數(shù)字組成
- isnumeric():判斷指定的字符串是否全部由數(shù)字組成
- isalnum():判斷指定字符串是否全部由字母和數(shù)字組成
字符串其他操作
字符串替換
- replace()
s = 'hello,Python,Python,Python'
print(s.replace('Python', 'Java')) # 默認(rèn)全部替換 hello,Java,Java,Java
print(s.replace('Python', 'Java', 2)) # 設(shè)置替換個數(shù) hello,Java,Java,Python
字符串連接
- join()
lst = ['hello', 'java', 'Python']
print(','.join(lst)) # hello,java,Python
print('|'.join(lst)) # hello|java|Python
格式化字符串輸出
- %占位符:輸出前加%,多個參數(shù)用小括號和逗號
- %s 字符串
- %i 或%d 整數(shù)
- -%f 浮點數(shù)
- {}占位符: 調(diào)用format()方法
- f-string:把變量寫在{}中
name = '張三'
age = 20
print('我叫%s, 今年%d歲' % (name, age))
print('我叫{0}, 今年{1}歲,小名也叫{0}'.format(name, age))
print(f'我叫{name}, 今年{age}歲')
# 我叫張三, 今年20歲
# 我叫張三, 今年20歲,小名也叫張三
# 我叫張三, 今年20歲
設(shè)置數(shù)字的寬度和精度
# 設(shè)置數(shù)字的寬度和精度
'''%占位'''
print('%10d' % 99) # 10表示寬度
print('%.3f' % 3.1415926) # .3f表示小數(shù)點后3位
print('%10.3f' % 3.1415926) # 同時設(shè)置寬度和精度
'''{}占位 需要使用:開始'''
print('{:.3}'.format(3.1415926)) # .3表示3位有效數(shù)字
print('{:.3f}'.format(3.1415926)) # .3f表示小數(shù)點后3位
print('{:10.3f}'.format(3.1415926)) # .3f表示小數(shù)點后3位
# 99
#3.142
# 3.142
#3.14
#3.142
# 3.142
字符串編碼
s = '但愿人長久' # 編碼 將字符串轉(zhuǎn)換成byte(二進(jìn)制)數(shù)據(jù) print(s.encode(encoding='gbk')) #gbk,中文占用2個字節(jié) print(s.encode(encoding='utf-8')) #utf-8,中文占用3個字節(jié) # 解碼 將byte(二進(jìn)制)轉(zhuǎn)換成字符串?dāng)?shù)據(jù) # 編碼與解碼中,encoding方式需要一致 byte = s.encode(encoding='gbk') print(byte.decode(encoding='gbk')) # b'\xb5\xab\xd4\xb8\xc8\xcb\xb3\xa4\xbe\xc3' # b'\xe4\xbd\x86\xe6\x84\xbf\xe4\xba\xba\xe9\x95\xbf\xe4\xb9\x85' # 但愿人長久
列表 list
列表的特點
-
有序序列
-
索引映射唯一個數(shù)據(jù)
-
可以存儲重復(fù)數(shù)據(jù)
-
任意數(shù)據(jù)類型混存
-
根據(jù)需要動態(tài)分配和回收內(nèi)存
列表的創(chuàng)建
- []:使用中括號
- list():使用內(nèi)置函數(shù)list()
- 列表生成式
-
語法格式:[i*i for i in range(i, 10)]
-
解釋:i表示自定義變量,i*i表示列表元素的表達(dá)式,range(i, 10)表示可迭代對象
print([i * i for i in range(1, 10)])# [1, 4, 9, 16, 25, 36, 49, 64, 81]
-
列表元素的查詢
- 判斷指定元素在列表中是否存在
in / not in
- 列表元素的遍歷
for item in list: print(item)
- 查詢元素索引
list.index(item)
- 獲取元素
list = [1, 4, 9, 16, 25, 36, 49, 64, 81]print(list[3]) # 16print(list[3:6]) # [16, 25, 36]
列表元素的增加
-
append():在列表的末尾添加一個元素
-
extend():在列表的末尾至少添加一個元素
-
insert0:在列表的指定位置添加一個元素
-
切片:在列表的指定位置添加至少一個元素
列表元素的刪除
-
rerove():一次刪除一個元素,
重復(fù)元素只刪除第一個,
元素不存在拋出ValceError異常 -
pop():刪除一個指定索引位置上的元素,
指定索引不存在拋出IndexError異常,
不指定索引,刪除列表中最后一個元素 -
切片:一次至少刪除一個元素
-
clear0:清空列表
-
del:刪除列表
列表元素的排序
- sort(),列表中的所有元素默認(rèn)按照從小到大的順序進(jìn)行排序,可以指定reverse= True,進(jìn)行降序排序,是對原列表的操作。
list.sort()
- sorted(),可以指定reverse—True,進(jìn)行降序排序,原列表不發(fā)生改變,產(chǎn)生新的列表。
sorted(list)
知識點總結(jié)
元組 tuple
元組的特點
Python的元組與列表類似,不同之處在于元組的元素不能修改。
元組使用小括號,列表使用方括號
元組的創(chuàng)建
- 直接使用小括號(), 小括號可以省略
t = ('Python', 'hello', 90)
- 使用內(nèi)置函數(shù)tuple(), 若有多個元素必須加小括號
tuple(('Python', 'hello', 90))
- 只包含一個元素的元組,需要使用小括號和逗號
t = (10,)
知識點總結(jié)
字典 dict
字典的特點
- 以鍵值對的方式存儲,key唯一
- key必須是不可變對象
- 字典是可變序列
- 字典是無序序列 (注意:自Python3.7本后,dict 對象的插入順序保留性質(zhì)已被聲明為 Python 語言規(guī)范的正式部分。即,Python3.7之后,字典是有序序列,順序為字典的插入順序)
字典的創(chuàng)建
- {}:使用花括號
- 使用內(nèi)置函數(shù)dict()
- zip():字典生成式
items = ['fruits', 'Books', 'Others']
prices = [12, 36, 44]
d = {item.upper(): price for item, price in zip(items, prices)}
print(d) # {'FRUITS': 12, 'BOOKS': 36, 'OTHERS': 44}
字典元素的獲取
- []:[]取值
scores[‘張三’],若key不存在,拋出keyError異常 - get():get()方法取值,若key不存在,返回None,還可以設(shè)置默認(rèn)返回值
字典元素的新增
user = {"id": 1, "name": "zhangsan"}
user["age"] = 25
print(user) # {'id': 1, 'name': 'zhangsan', 'age': 25}
字典元素的修改
user = {"id": 1, "name": "zhangsan", "age": 25}
user["age"] = 18
print(user) # {'id': 1, 'name': 'zhangsan', 'age': 18}
字典元素的刪除
- del :刪除指定的鍵值對或者刪除字典
user = {"id": 1, "name": "zhangsan"}del user["id"]print(user) # {'name': 'zhangsan'}del user
- claer():清空字典中的元素
user = {"id": 1, "name": "zhangsan"}user.clear()print(user) # {}
獲取字典視圖
- keys():獲取字典中所有key
- values():獲取字典中所有value
- items():獲取字典中所有key,value鍵值對
字典元素的遍歷
- 遍歷key,再通過key獲取value
scores = {'張三': 100, '李四': 95, '王五': 88}for name in scores:
print(name, scores[name])
- 通過items()方法,同時遍歷key,value
scores = {'張三': 100, '李四': 95, '王五': 88}for name, score in scores.items():
print(name, score)
知識點總結(jié)
集合 set
集合的特點
- 集合是可變序列
- 集合是沒有value的字典
- 集合中元素不重復(fù)
- 集合中元素是無序的
集合的創(chuàng)建
- {}
s = {'Python', 'hello', 90}
- 內(nèi)置函數(shù)set()
print(set("Python"))print(set(range(1,6)))print(set([3, 4, 7]))print(set((3, 2, 0)))print(set({"a", "b", "c"}))# 定義空集合:set()print(set())
- 集合生成式
print({i * i for i in range(1, 10)})# {64, 1, 4, 36, 9, 16, 49, 81, 25}
集合的操作
- 集合元素的判斷操作
- in / not in
- 集合元素的新增操作
- add():一次添中一個元素
- update(:)添加多個元素
- 集合元素的刪除操作
- remove():刪除一個指定元素,如果指定的元素不存在拋出KeyError
- discard(:)刪除一個指定元素,如果指定的元素不存在不拋異常
- pop():隨機(jī)刪除一個元素
- clear():清空集合
集合間的關(guān)系
-
兩個集合是否相等:可以使用運算符 == 或 != 進(jìn)行判斷,只要元素相同就相等
-
一個集合是否是另一個集合的子集:issubset()
s1 = {10, 20, 30, 40, 50, 60}s2 = {10, 30, 40}s3 = {10, 70}print(s2.issubset(s1))
# Trueprint(s3.issubset(s1)) # False
- 一個集合是否是另一個集合的超集:issuperset()
print(s1.issuperset(s2)) # Trueprint(s1.issuperset(s3)) # False
- 兩個集合是否無交集:isdisjoint()
s1 = {10, 20, 30, 40, 50, 60}s2 = {10, 30, 40}s3 = {20, 70}print(s1.isdisjoint(s2))
# False 有交集print(s3.isdisjoint(s2)) # True 無交集
集合的數(shù)學(xué)操作
- 交集: intersection() 與 &等價,兩個集合的交集
s1 = {10, 20, 30, 40}s2 = {20, 30, 40, 50, 60}print(s1.intersection(s2)) # {40, 20, 30}print(s1 & s2) # {40, 20, 30}
- 并集: union() 與 | 等價,兩個集合的并集
print(s1.union(s2)) # {40, 10, 50, 20, 60, 30}print(s1 | s2) # {40, 10, 50, 20, 60, 30}
- 差集: difference() 與 - 等價
print(s2.difference(s1)) # {50, 60}print(s2 - s1) # {50, 60}
- 對稱差集:symmetric_difference() 與 ^ 等價
print(s2.symmetric_difference(s1)) # {10, 50, 60}print(s2 ^ s1) # {10, 50, 60}
知識點總結(jié)
列表、元組、字典、集合總結(jié)
網(wǎng)站題目:詳細(xì)介紹Python3數(shù)據(jù)結(jié)構(gòu)知識點
標(biāo)題網(wǎng)址:http://m.fisionsoft.com.cn/article/ccecjgc.html


咨詢
建站咨詢
