Python常見數(shù)據(jù)類型處理詳細(xì)代碼示例
一、數(shù)據(jù)類型分類
Python3 中常見的數(shù)據(jù)類型有:
- Number(數(shù)字)
- String(字符串)
- bool(布爾類型)
- List(列表)
- Tuple(元組)
- Set(集合)
- Dictionary(字典)
Python3 的六個(gè)標(biāo)準(zhǔn)數(shù)據(jù)類型中:
不可變數(shù)據(jù)(3 個(gè)): Number(數(shù)字)、String(字符串)、Tuple(元組);
可變數(shù)據(jù)(3 個(gè)): List(列表)、Dictionary(字典)、Set(集合)。
基本
- Number(數(shù)字)
- String(字符串)
多字段
- List(列表)
- Tuple(元組)
- Dictionary(字典)
- Set(集合)
# List(列表) my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8] # Tuple(元組)(值不能修改) my_tuple = (1, 2, 3, 4) # Dictionary(字典) my_info = {'name': '張三', 'age': 18, 'address': '北京市'} # Set(集合) set01 = {1, 2, 3, 4}
二、基本數(shù)據(jù)類型
1、Number(數(shù)字)
- Python3 支持 int、float、bool、complex(復(fù)數(shù))。
- 在Python 3里,只有一種整數(shù)類型 int,表示為長(zhǎng)整型,沒有 python2 中的 Long。
- 像大多數(shù)語言一樣,數(shù)值類型的賦值和計(jì)算都是很直觀的。
- 內(nèi)置的
type()
函數(shù)可以用來查詢變量所指的對(duì)象類型。 - Python可以同時(shí)為多個(gè)變量賦值,如a, b = 1, 2。
- 一個(gè)變量可以通過賦值指向不同類型的對(duì)象。
- 數(shù)值的除法包含兩個(gè)運(yùn)算符:/ 返回一個(gè)浮點(diǎn)數(shù),// 返回一個(gè)整數(shù)。
- 在混合計(jì)算時(shí),Python會(huì)把整型轉(zhuǎn)換成為浮點(diǎn)數(shù)
>>> 5 + 4 # 加法 9 >>> 4.3 - 2 # 減法 2.3 >>> 3 * 7 # 乘法 21 >>> 2 / 4 # 除法,得到一個(gè)浮點(diǎn)數(shù) 0.5 >>> 2 // 4 # 除法,得到一個(gè)整數(shù) 0 >>> 17 % 3 # 取余 2 >>> 2 ** 5 # 乘方 32
2、String(字符串)
- 反斜杠可以用來轉(zhuǎn)義,使用r可以讓反斜杠不發(fā)生轉(zhuǎn)義。
- 字符串可以用+運(yùn)算符連接在一起,用*運(yùn)算符重復(fù)。
- Python中的字符串有兩種索引方式,從左往右以0開始,從右往左以-1開始。
- Python中的字符串不能改變。
print(str[0:-1]) # 打印字符串第一個(gè)到倒數(shù)第二個(gè)字符(不包含倒數(shù)第一個(gè)字符) print(str[0]) # 打印字符串的第一個(gè)字符 print(str[2:5]) # 打印字符串第三到第五個(gè)字符(包含第五個(gè)字符) print(str[2:]) # 打印字符串從第三個(gè)字符開始到末尾 str_01 = 'my name is:{}, age:{}' print(str_01.format('張三', 18)) str_02 = 'my name is:{name}, age:{age}' print(str_02.format(name='張三', age=18)) str_03 = 'my name is:{name}, age:{age}' print(str_03.format_map({'name': '張三', 'age': 18}))
Python 使用反斜杠\
轉(zhuǎn)義特殊字符,如果你不想讓反斜杠發(fā)生轉(zhuǎn)義,可以在字符串前面添加一個(gè)r
,表示原始字符串:
print('Ru\noob') Ru oob print(r'Ru\noob') Ru\noob
encode()
、decode()
方法
encode()
方法以指定的編碼格式編碼字符串。errors參數(shù)可以指定不同的錯(cuò)誤處理方案。decode()
方法以指定的編碼格式解碼 bytes 對(duì)象。默認(rèn)編碼為 ‘utf-8’。- 該方法返回編碼后的字符串,它是一個(gè) bytes 對(duì)象。
str.encode(encoding='UTF-8',errors='strict') bytes.decode(encoding="utf-8", errors="strict")
- encoding – 要使用的編碼,如: UTF-8。
- errors – 設(shè)置不同錯(cuò)誤的處理方案。默認(rèn)為 ‘strict’,意為編碼錯(cuò)誤引起一個(gè)UnicodeError。 其他可能得值有 ‘ignore’, ‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 以及通過 codecs.register_error() 注冊(cè)的任何值。
#!/usr/bin/python3 str = "菜鳥教程" str_utf8 = str.encode("UTF-8", 'strict') str_gbk = str.encode("GBK") print("UTF-8 編碼:", str_utf8) print("GBK 編碼:", str_gbk) print("UTF-8 解碼:", str_utf8.decode('UTF-8')) print("GBK 解碼:", str_gbk.decode('GBK', 'strict'))
結(jié)果:
UTF-8 編碼: b'\xe8\x8f\x9c\xe9\xb8\x9f\xe6\x95\x99\xe7\xa8\x8b' GBK 編碼: b'\xb2\xcb\xc4\xf1\xbd\xcc\xb3\xcc' UTF-8 解碼: 菜鳥教程 GBK 解碼: 菜鳥教程
3.2 format格式化字符串
# 1、 print('{}網(wǎng)址: "{}!"'.format('菜鳥教程', 'www.runoob.com')) # 2、 print('{name}網(wǎng)址: {site}'.format(name='菜鳥教程', site='www.runoob.com')) # 3、 print('{0} 和 {1}'.format('Google', 'Runoob')) # 可以任意組合 print('站點(diǎn)列表 {0}, {1}, 和 {other}。'.format('Google', 'Runoob', other='Taobao')) # 4、 table = {'Google': 1, 'Runoob': 2, 'Taobao': 3} print('Runoob: {0[Runoob]:d}; Google: {0[Google]:d}; Taobao: {0[Taobao]:d}'.format(table))
3、Bool(布爾類型)
布爾類型即 True 或 False。
在 Python 中,True 和 False 都是關(guān)鍵字,表示布爾值。
布爾類型可以用來控制程序的流程,比如判斷某個(gè)條件是否成立,或者在某個(gè)條件滿足時(shí)執(zhí)行某段代碼。
布爾類型特點(diǎn):
- 布爾類型只有兩個(gè)值:True 和 False。
- 布爾類型可以和其他數(shù)據(jù)類型進(jìn)行比較,比如數(shù)字、字符串等。在比較時(shí),Python 會(huì)將 True 視為 1,F(xiàn)alse 視為 0。
- 布爾類型可以和邏輯運(yùn)算符一起使用,包括 and、or 和 not。這些運(yùn)算符可以用來組合多個(gè)布爾表達(dá)式,生成一個(gè)新的布爾值。
- 布爾類型也可以被轉(zhuǎn)換成其他數(shù)據(jù)類型,比如整數(shù)、浮點(diǎn)數(shù)和字符串。在轉(zhuǎn)換時(shí),True 會(huì)被轉(zhuǎn)換成 1,F(xiàn)alse 會(huì)被轉(zhuǎn)換成 0。
a = True b = False # 比較運(yùn)算符 print(2 < 3) # True print(2 == 3) # False # 邏輯運(yùn)算符 print(a and b) # False print(a or b) # True print(not a) # False # 類型轉(zhuǎn)換 print(int(a)) # 1 print(float(b)) # 0.0 print(str(a)) # "True"
Python3 中,bool
是 int
的子類,True
和False
可以和數(shù)字相加,True==1、False==0
會(huì)返回True
,但可以通過is
來判斷類型。
a1 = True print(type(a1)) print(a1 + 100) <class 'bool'> 101
4、Bytes
字符串轉(zhuǎn)為Bytes
# 解析為bytes:b'Hello,World' print('Hello,World'.encode())
Bytes
轉(zhuǎn)為字符串
# 創(chuàng)建一個(gè)bytes對(duì)象 bytes_data = b'Hello, World!' # b'Hello, World!' print(bytes_data) # 將bytes對(duì)象轉(zhuǎn)換為字符串 string_data = bytes_data.decode('utf-8') print(string_data)
三、多值存儲(chǔ)
1、List(列表)
增、刪、改、查:
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8] # 1、增 my_list.append('333') # 將另一個(gè)集合中添加到列表中 insert_list = [1, 23] my_list.extend(insert_list) # 指定位置前插入元素 my_list.insert(2, '34') # 2、刪 my_list.remove() # 3、改 my_list[1] = '張三' # 4、查 # 查看是否存在于集合中 print('張三' in my_list) # 查詢所在索引 my_list.index('張三') my_list.index('張三', 1, 4) # 查詢數(shù)量 my_list.count('張三')
其它
# 循環(huán) for one in my_list: # print(one) print(one, end='==') print(one, end='==\n%%% ') # 排序 # 排序-正序 my_list.sort() # 排序-倒敘 my_list.sort(reverse=True)
函數(shù)內(nèi)置方法
方法 | 序號(hào) |
---|---|
list.append(obj) | 在列表末尾添加新的對(duì)象 |
list.count(obj) | 統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù) |
list.extend(seq) | 在列表末尾一次性追加另一個(gè)序列中的多個(gè)值(用新列表擴(kuò)展原來的列表) |
list.index(obj) | 從列表中找出某個(gè)值第一個(gè)匹配項(xiàng)的索引位置 |
list.insert(index, obj) | 將對(duì)象插入列表 |
list.pop([index=-1\]) | 移除列表中的一個(gè)元素(默認(rèn)最后一個(gè)元素),并且返回該元素的值 |
list.remove(obj) | 移除列表中某個(gè)值的第一個(gè)匹配項(xiàng) |
list.reverse() | 反向列表中元素 |
list.sort( key=None, reverse=False) | 對(duì)原列表進(jìn)行排序 |
list.clear() | 清空列表 |
list.copy() | 復(fù)制列表 |
2、Tuple(元組)
Python的元組與列表類似,不同之處在于元組的元素不能修改。
# tuple元組 my_tuple = (1, 2, 3, 4) # 查-某個(gè)值 print(my_tuple[1]) # 查—查詢所在索引位置(前閉右開區(qū)間)(起始索引:0) print(my_tuple.index(2, 1, 3)) # 查-某值數(shù)量 print(my_tuple.count(1))
Python元組包含了以下內(nèi)置函數(shù)
函數(shù) | 方法及描述 | 實(shí)例 |
---|---|---|
len(tuple) | 計(jì)算元組元素個(gè)數(shù) | >>> tuple1 = ('Google', 'Runoob', 'Taobao') |
max(tuple) | 返回元組中元素最大值 | max(tuple2) |
min(tuple) | 返回元組中元素最小值 | min(tuple2) |
tuple(iterable) | 將可迭代系列轉(zhuǎn)換為元組 | tuple1=tuple(['Google', 'Taobao', 'Runoob', 'Baidu']) |
3、Dictionary(字典)
增刪改查
my_info = {'name': '張三', 'age': 18, 'address': '北京市'} # 1、查詢?cè)? # 查-查詢單個(gè)(無值異常) print(my_info['name']) print(my_info['age']) # 查-查詢單個(gè)(無值返回 None) print(my_info.get('name1')) # 查-查詢單個(gè)(無值返回 指定值) print(my_info.get('name2', '李四')) # 2、修改元素 my_info['name'] = '王五' # 3、添加元素 # 添加元素-鍵不存在則添加 my_info['id'] = 1234 # 4、刪除元素 # 刪除元素-刪除單個(gè)元素 del my_info['id'] # 刪除-刪除字典(查詢會(huì)報(bào)錯(cuò) del my_info # 刪除—清空字段(值為{}) my_info.clear()
其它API
# 5、其它API # 測(cè)量字典中,鍵值對(duì)的個(gè)數(shù) print(len(my_info)) # 返回一個(gè)包含字典所有KEY的列表 print(my_info.keys()) # 返回一個(gè)包含字典所有value的列表 print(my_info.values()) # 返回一個(gè)包含所有(鍵,值)元祖的列表 print(my_info.items())
方法 | 函數(shù)及描述 |
---|---|
dict.clear() | 刪除字典內(nèi)所有元素 |
dict.copy() | 返回一個(gè)字典的淺復(fù)制 |
dict.fromkeys() | 創(chuàng)建一個(gè)新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對(duì)應(yīng)的初始值 |
dict.get(key, default=None) | 返回指定鍵的值,如果鍵不在字典中返回 default 設(shè)置的默認(rèn)值 |
key in dict | 如果鍵在字典dict里返回true,否則返回false |
dict.items() | 以列表返回一個(gè)視圖對(duì)象 |
dict.keys() | 返回一個(gè)視圖對(duì)象 |
dict.setdefault(key, default=None) | 類似, 但如果鍵不存在于字典中,將會(huì)添加鍵并將值設(shè)為default |
dict.update(dict2) | 把字典dict2的鍵/值對(duì)更新到dict里 |
dict.values() | 返回一個(gè)視圖對(duì)象 |
pop(key[,default\]) | 刪除字典 key(鍵)所對(duì)應(yīng)的值,返回被刪除的值。 |
popitem() | 返回并刪除字典中的最后一對(duì)鍵和值。 |
4、Set(集合)
- 集合(set)是一個(gè)無序的不重復(fù)元素序列。
- 集合中的元素不會(huì)重復(fù),并且可以進(jìn)行交集、并集、差集等常見的集合操作。
- 可以使用大括號(hào) { } 創(chuàng)建集合,元素之間用逗號(hào) , 分隔, 或者也可以使用 set() 函數(shù)創(chuàng)建集合。
# 0、創(chuàng)建集合 set01 = {1, 2, 3, 4} # 直接使用大括號(hào)創(chuàng)建集合 set02 = set([4, 5, 6, 7]) # 使用 set() 函數(shù)從列表創(chuàng)建集合 # 1、增 # 1-1 將元素 x 添加到集合 s 中,如果元素已存在,則不進(jìn)行任何操作。 set01.add(100) # 1-2 添加元素,且參數(shù)可以是列表,元組,字典等 set01.update([1, 2, ]) # 2、刪 # 2-1 將元素 x 從集合 s 中移除,如果元素不存在,則會(huì)發(fā)生錯(cuò)誤 set01.remove(1) # 2-2 移除集合中的元素,且如果元素不存在,不會(huì)發(fā)生錯(cuò)誤 set01.discard(1) # 2-3 隨機(jī)刪除集合中的一個(gè)元素 s.pop() # 3、其它 # 判斷元素是否在集合內(nèi)(False) print('1' in set03) # 計(jì)算集合元素個(gè)數(shù) print(len(set01)) # 清空集合 set01.clear()
集合內(nèi)置方法完整列表
方法 | 描述 |
---|---|
add() | 為集合添加元素 |
clear() | 移除集合中的所有元素 |
copy() | 拷貝一個(gè)集合 |
difference() | 返回多個(gè)集合的差集 |
difference_update() | 移除集合中的元素,該元素在指定的集合也存在。 |
discard() | 刪除集合中指定的元素 |
intersection() | 返回集合的交集 |
intersection_update() | 返回集合的交集。 |
isdisjoint() | 判斷兩個(gè)集合是否包含相同的元素,如果沒有返回 True,否則返回 False。 |
issubset() | 判斷指定集合是否為該方法參數(shù)集合的子集。 |
issuperset() | 判斷該方法的參數(shù)集合是否為指定集合的子集 |
pop() | 隨機(jī)移除元素 |
remove() | 移除指定元素 |
symmetric_difference() | 返回兩個(gè)集合中不重復(fù)的元素集合。 |
symmetric_difference_update() | 移除當(dāng)前集合中在另外一個(gè)指定集合相同的元素,并將另外一個(gè)指定集合中不同的元素插入到當(dāng)前集合中。 |
union() | 返回兩個(gè)集合的并集 |
update() | 給集合添加元素 |
len() | 計(jì)算集合元素個(gè)數(shù) |
四、其它
1、Json
方法 | 作用 | 返回類型 |
---|---|---|
eval(字符串表達(dá)式) | eval() 函數(shù)用來執(zhí)行一個(gè)【字符串表達(dá)式】,并返回表達(dá)式的值。 | list、dict、tuple |
json.dumps() | 將python對(duì)象編碼成Json字符串 | 返回json字符串 |
json.loads() | 將Json字符串解碼成python對(duì)象 | 返回python對(duì)象 |
json.dump() | 將python中的對(duì)象轉(zhuǎn)化成json儲(chǔ)存到文件中 | 無返回 |
json.load() | 將文件中的json的格式轉(zhuǎn)化成python對(duì)象提取出來 | 返回python對(duì)象 |
五、其它函數(shù)
1、print()
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
objects
:復(fù)數(shù),表示可以一次輸出多個(gè)對(duì)象。輸出多個(gè)對(duì)象時(shí),需要用 , 分隔。sep
:用來間隔多個(gè)對(duì)象,默認(rèn)值是一個(gè)空格。end
:用來設(shè)定以什么結(jié)尾。默認(rèn)值是換行符 \n,我們可以換成其他字符串。file
:要寫入的文件對(duì)象。flush
:輸出是否被緩存通常決定于 file,但如果 flush 關(guān)鍵字參數(shù)為 True,流會(huì)被強(qiáng)制刷新。
# 1 2 3 4 5 print('1', '2', '3', '4', '5') # 1+2+3 print('1', '2', '3', sep='+') # 1++2++3== print('1', '2', '3', sep='++', end='==')
總結(jié)
到此這篇關(guān)于Python常見數(shù)據(jù)類型處理的文章就介紹到這了,更多相關(guān)Python數(shù)據(jù)類型處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python使用線程封裝的一個(gè)簡(jiǎn)單定時(shí)器類實(shí)例
這篇文章主要介紹了python使用線程封裝的一個(gè)簡(jiǎn)單定時(shí)器類,實(shí)例分析了Python線程的使用及定時(shí)器類的實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-05-05pyppeteer執(zhí)行js繞過webdriver監(jiān)測(cè)方法下
這篇文章主要為大家介紹了pyppeteer上執(zhí)行js并繞過webdriver監(jiān)測(cè)常見方法的上篇,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04簡(jiǎn)單談?wù)刾ython基本數(shù)據(jù)類型
在Python中,能夠直接處理的數(shù)據(jù)類型有以下幾種:#整型 int,#浮點(diǎn)型 float,#布爾型 bool,#復(fù)數(shù)型 (在python中用小寫 j ,表示虛部,用其他的字母不行)complex2018-09-09Win10系統(tǒng)下安裝labelme及json文件批量轉(zhuǎn)化方法
這篇文章主要介紹了Win10系統(tǒng)下安裝labelme及json文件批量轉(zhuǎn)化的方法,文中較詳細(xì)的給大家介紹了安裝過程 ,需要的朋友可以參考下2019-07-07Python實(shí)現(xiàn)歷史記錄功能(實(shí)際案例)
很多應(yīng)用程序都有瀏覽用戶的歷史記錄的功能,瀏覽器可以查看最近訪問過的網(wǎng)頁,現(xiàn)在我們制作了一個(gè)簡(jiǎn)單的猜數(shù)字的小游戲,添加歷史記錄功能,顯示用戶最近猜過的數(shù)字,如何實(shí)現(xiàn)呢?跟隨小編一起看看吧2022-04-04python3 自動(dòng)打印出最新版本執(zhí)行的mysql2redis實(shí)例
這篇文章主要介紹了python3 自動(dòng)打印出最新版本執(zhí)行的mysql2redis實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04