本篇文章為大家帶來了關於python的相關知識,其中主要介紹了資料結構的相關問題,包括了數字、字串、列表、元組、字典等等的相關內容,希望對大家有幫助。
推薦學習:python影片教學
#數字Number
- ## 整數( int) - 通常稱為是整數或整數,是正或負整數,不帶小數點。 Python3 整型是沒有限制大小的,可以當作 Long 型別使用。布林(bool)是整型的子型別。
- 浮點型(float) - 浮點型由整數部分與小數部分組成,浮點型也可以使用科學計數法表示(2.5e2 = 2.5 x 102 = 250)
- 複數( (complex)) - 複數由實數部分和虛數部分構成,可以用a bj,或者complex(a,b)表示, 複數的實部a和虛部b都是浮點型。
- int(x) 將x轉換為整數。
- float(x) 將x轉換到一個浮點數。
- complex(x) 將x轉換為複數,實數部分為 x,虛數部分為 0。
- complex(x, y) 將 x 和 y 轉換到複數,實數部分為 x,虛數部分為 y。 x 和 y 是數字表達式。
# + - * / %(取余) **(幂运算)
# 整数除法中,除法 / 总是返回一个浮点数,
# 如果只想得到整数的结果,丢弃可能的分数部分,可以使用运算符 //
print(8 / 5) # 1.6
print(8 // 5) # 1
# 注意:// 得到的并不一定是整数类型的数,它与分母分子的数据类型有关系
print(8 // 5.0) # 1.0
# 使用 ** 操作来进行幂运算
print(5 ** 2) # 5的平方 25
字串str#字串的查詢
- index():尋找子字串substr第一次出現的位置,如果尋找的子字串不存在時,則拋出ValueErrorrindex()例外
- rindex():尋找子字串substr最後一次出現的位置,如果尋找的子字串不存在時,則拋出ValueError()例外
- #find():找出子字串substr第一次出現的位置,如果尋找的子當字串不存在時,則傳回-1
- rfind():尋找子字串substr最後一次出現的位置,如果尋找的子字串不存在時,則傳回-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字串大小寫轉換
- upper():把字串中所有字元都轉成大寫字母
- lower():把字串中所有字元都轉成小寫字母
- #swapcase():把字串中所有大寫字母轉成小寫字母,把所有小寫字母都轉成大寫字母
- capitalize():把第一個字元轉換為大寫,其餘字元轉換為小寫
- title():把每個單字的第一個字元轉換為大寫,把每個單字的剩餘字元轉換成小寫
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個參數指定寬度,第2個參數指定填充符,預設為空格,如果設定寬度小於實際寬度則傳回原字串
- #ljust():左對齊,第1個參數指定寬度,第2個參數指定填充符,預設為空格,如果設定寬度小於實際寬度則傳回原字串
- #rjust():右對齊,第1個參數指定寬度,第2個參數指定填充符,預設為空格,如果設定寬度小於實際寬度則傳回原字串
- zfill():右對齊,左邊用0填充,該方法只接收一個參數,用於指定字串的寬度,如果指定的寬度小於等於字串的長度,返回字串本身 #
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进行填充''' print(s.zfill(20)) # 00000000hello,Python print('-1005'.zfill(8)) # -0001005字串拆分、切片
拆分
- #split(): 從字串的左邊開始拆分
- rsplit():從字串的右邊開始拆分
-
- 預設的拆分字元是空格,回傳值是一個列表
- 透過參數sep 指定拆分字串的拆分符號
- 透過參數maxsplit 指定拆分宇符串時的最大拆分次數,在經過最大次數拆分之後,剩餘的子字串會單獨做為一部分
#
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'] # 左侧开始 print(s1.rsplit('|', 1)) # ['hello|word', 'Python'] # 右侧开始
切片
s = 'hello,world' print(s[:5]) # hello 从索引0开始,到4结束 print(s[6:]) # world 从索引6开始,到最后一个元素 print(s[1:5:1]) # ello 从索引1开始,到4结束,步长为1 print(s[::2]) # hlowrd 从开始到结束,步长为2 print(s[::-1]) # dlrow,olleh 步长为负数,从最后一个元素(索引-1)开始,到第一个元素结束 print(s[-6::1]) # ,world 从索引-6开始,到最后一个结束字串判斷相關
- isidentifier():判斷指定的字串是不是合法的識別符
- isspace():判斷指定的字串是否全部由空白字元組成(回車、換行,水平製表符)
- isalpha():判斷指定的字串是否全部由字母組成
- isdecimal():判斷指定字串是否全部由十進位的數字組成
- isnumeric():判斷指定的字串是否全部由數字組成
- isalnum ():判斷指定字串是否全部由字母和數字組成
#字串替換
- replace()
s = 'hello,Python,Python,Python' print(s.replace('Python', 'Java')) # 默认全部替换 hello,Java,Java,Java print(s.replace('Python', 'Java', 2)) # 设置替换个数 hello,Java,Java,Python
字串連線
- #join()
lst = ['hello', 'java', 'Python'] print(','.join(lst)) # hello,java,Python print('|'.join(lst)) # hello|java|Python格式化字串輸出
- %佔位符:輸出前加%,多個參數用小括號和逗號
- %s 字串
- %i 或%d 整數
- -%f 浮點數
{}佔位符: 呼叫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岁設定數字的寬度和精確度
# 设置数字的宽度和精度 '''%占位''' print('%10d' % 99) # 10表示宽度 print('%.3f' % 3.1415926) # .3f表示小数点后3位 print('%10.3f' % 3.1415926) # 同时设置宽度和精度 '''{}占位 需要使用:开始''' print('{:.3}'.format(3.1415926)) # .3表示3位有效数字 print('{:.3f}'.format(3.1415926)) # .3f表示小数点后3位 print('{:10.3f}'.format(3.1415926)) # .3f表示小数点后3位 # 99 #3.142 # 3.142 #3.14 #3.142 # 3.142字串編碼
s = '但愿人长久'
# 编码 将字符串转换成byte(二进制)数据
print(s.encode(encoding='gbk')) #gbk,中文占用2个字节
print(s.encode(encoding='utf-8')) #utf-8,中文占用3个字节
# 解码 将byte(二进制)转换成字符串数据
# 编码与解码中,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##清單的特徵
- 有序序列
- 索引映射唯一個資料
可以存储重复数据
任意数据类型混存
根据需要动态分配和回收内存
列表的创建
- []:使用中括号
- list():使用内置函数list()
- 列表生成式
语法格式:[i*i for i in range(i, 10)]
-
解释:i表示自定义变量,i*i表示列表元素的表达式,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():一次删除一个元素,
重复元素只删除第一个,
元素不存在抛出ValceError异常pop():删除一个指定索引位置上的元素,
指定索引不存在抛出IndexError异常,
不指定索引,删除列表中最后一个元素切片:一次至少删除一个元素
clear0:清空列表
del:删除列表
列表元素的排序
- sort(),列表中的所有元素默认按照从小到大的顺序进行排序,可以指定reverse= True,进行降序排序,是对原列表的操作。
list.sort()
- sorted(),可以指定reverse—True,进行降序排序,原列表不发生改变,产生新的列表。
sorted(list)
知识点总结
元组 tuple
元组的特点
Python的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号
元组的创建
- 直接使用小括号(), 小括号可以省略
t = ('Python', 'hello', 90)
- 使用内置函数tuple(), 若有多个元素必须加小括号
tuple(('Python', 'hello', 90))
- 只包含一个元素的元组,需要使用小括号和逗号
t = (10,)
知识点总结
字典 dict
字典的特点
- 以键值对的方式存储,key唯一
- key必须是不可变对象
- 字典是可变序列
- 字典是无序序列 (注意:自Python3.7本后,dict 对象的插入顺序保留性质已被声明为 Python 语言规范的正式部分。即,Python3.7之后,字典是有序序列,顺序为字典的插入顺序)
字典的创建
- {}:使用花括号
- 使用内置函数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,还可以设置默认返回值
字典元素的新增
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)
知识点总结
集合 set
集合的特点
- 集合是可变序列
- 集合是没有value的字典
- 集合中元素不重复
- 集合中元素是无序的
集合的创建
- {}
s = {'Python', 'hello', 90}
- 内置函数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():随机删除一个元素
- clear():清空集合
集合间的关系
两个集合是否相等:可以使用运算符 == 或 != 进行判断,只要元素相同就相等
一个集合是否是另一个集合的子集: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 无交集
集合的数学操作
- 交集: 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}
知识点总结
列表、元组、字典、集合总结
推荐学习:python教程
以上是詳細介紹Python3資料結構知識點的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Inpython,YouAppendElementStoAlistusingTheAppend()方法。 1)useappend()forsingleelements:my_list.append(4).2)useextend()orextend()或= formultiplelements:my_list.extend.extend(emote_list)ormy_list = [4,5,6] .3)useInsert()forspefificpositions:my_list.insert(1,5).beaware

調試shebang問題的方法包括:1.檢查shebang行確保是腳本首行且無前置空格;2.驗證解釋器路徑是否正確;3.直接調用解釋器運行腳本以隔離shebang問題;4.使用strace或truss跟踪系統調用;5.檢查環境變量對shebang的影響。

pythonlistscanbemanipulationusseveralmethodstoremovelements:1)theremove()MethodRemovestHefirStocCurrenceOfAstePecificiedValue.2)thepop()thepop()methodRemovesandReturnturnturnturnsanaNelementAgivenIndex.3)

pythristssupportnumeroferations:1)addingElementSwithAppend(),Extend(),andInsert()。 2)emovingItemSusingRemove(),pop(),andclear(),and clear()。 3)訪問andModifyingandmodifyingwithIndexingandSlicing.4)

使用NumPy創建多維數組可以通過以下步驟實現:1)使用numpy.array()函數創建數組,例如np.array([[1,2,3],[4,5,6]])創建2D數組;2)使用np.zeros(),np.ones(),np.random.random()等函數創建特定值填充的數組;3)理解數組的shape和size屬性,確保子數組長度一致,避免錯誤;4)使用np.reshape()函數改變數組形狀;5)注意內存使用,確保代碼清晰高效。

播放innumpyisamethodtoperformoperationsonArraySofDifferentsHapesbyAutapityallate AligningThem.itSimplifififiesCode,增強可讀性,和Boostsperformance.Shere'shore'showitworks:1)較小的ArraySaraySaraysAraySaraySaraySaraySarePaddedDedWiteWithOnestOmatchDimentions.2)

forpythondataTastorage,choselistsforflexibilityWithMixedDatatypes,array.ArrayFormeMory-effficityHomogeneousnumericalData,andnumpyArraysForAdvancedNumericalComputing.listsareversareversareversareversArversatilebutlessEbutlesseftlesseftlesseftlessforefforefforefforefforefforefforefforefforefforlargenumerdataSets; arrayoffray.array.array.array.array.array.ersersamiddreddregro


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

禪工作室 13.0.1
強大的PHP整合開發環境

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!