Python常見(jiàn)數(shù)據(jù)類(lèi)型處理詳細(xì)代碼示例
一、數(shù)據(jù)類(lèi)型分類(lèi)
Python3 中常見(jiàn)的數(shù)據(jù)類(lèi)型有:
- Number(數(shù)字)
- String(字符串)
- bool(布爾類(lèi)型)
- List(列表)
- Tuple(元組)
- Set(集合)
- Dictionary(字典)
Python3 的六個(gè)標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型中:
不可變數(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ù)類(lèi)型
1、Number(數(shù)字)
- Python3 支持 int、float、bool、complex(復(fù)數(shù))。
- 在Python 3里,只有一種整數(shù)類(lèi)型 int,表示為長(zhǎng)整型,沒(méi)有 python2 中的 Long。
- 像大多數(shù)語(yǔ)言一樣,數(shù)值類(lèi)型的賦值和計(jì)算都是很直觀(guān)的。
- 內(nèi)置的
type()函數(shù)可以用來(lái)查詢(xún)變量所指的對(duì)象類(lèi)型。 - Python可以同時(shí)為多個(gè)變量賦值,如a, b = 1, 2。
- 一個(gè)變量可以通過(guò)賦值指向不同類(lèi)型的對(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(字符串)
- 反斜杠可以用來(lái)轉(zhuǎn)義,使用r可以讓反斜杠不發(fā)生轉(zhuǎn)義。
- 字符串可以用+運(yùn)算符連接在一起,用*運(yùn)算符重復(fù)。
- Python中的字符串有兩種索引方式,從左往右以0開(kāi)始,從右往左以-1開(kāi)始。
- Python中的字符串不能改變。
print(str[0:-1]) # 打印字符串第一個(gè)到倒數(shù)第二個(gè)字符(不包含倒數(shù)第一個(gè)字符)
print(str[0]) # 打印字符串的第一個(gè)字符
print(str[2:5]) # 打印字符串第三到第五個(gè)字符(包含第五個(gè)字符)
print(str[2:]) # 打印字符串從第三個(gè)字符開(kāi)始到末尾
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’ 以及通過(guò) codecs.register_error() 注冊(cè)的任何值。
#!/usr/bin/python3
str = "菜鳥(niǎo)教程"
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 解碼: 菜鳥(niǎo)教程 GBK 解碼: 菜鳥(niǎo)教程
3.2 format格式化字符串
# 1、
print('{}網(wǎng)址: "{}!"'.format('菜鳥(niǎo)教程', 'www.runoob.com'))
# 2、
print('{name}網(wǎng)址: {site}'.format(name='菜鳥(niǎo)教程', 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(布爾類(lèi)型)
布爾類(lèi)型即 True 或 False。
在 Python 中,True 和 False 都是關(guān)鍵字,表示布爾值。
布爾類(lèi)型可以用來(lái)控制程序的流程,比如判斷某個(gè)條件是否成立,或者在某個(gè)條件滿(mǎn)足時(shí)執(zhí)行某段代碼。
布爾類(lèi)型特點(diǎn):
- 布爾類(lèi)型只有兩個(gè)值:True 和 False。
- 布爾類(lèi)型可以和其他數(shù)據(jù)類(lèi)型進(jìn)行比較,比如數(shù)字、字符串等。在比較時(shí),Python 會(huì)將 True 視為 1,F(xiàn)alse 視為 0。
- 布爾類(lèi)型可以和邏輯運(yùn)算符一起使用,包括 and、or 和 not。這些運(yùn)算符可以用來(lái)組合多個(gè)布爾表達(dá)式,生成一個(gè)新的布爾值。
- 布爾類(lèi)型也可以被轉(zhuǎn)換成其他數(shù)據(jù)類(lèi)型,比如整數(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 # 類(lèi)型轉(zhuǎn)換 print(int(a)) # 1 print(float(b)) # 0.0 print(str(a)) # "True"
Python3 中,bool是 int 的子類(lèi),True和False可以和數(shù)字相加,True==1、False==0會(huì)返回True,但可以通過(guò)is來(lái)判斷類(lèi)型。
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)
# 查詢(xún)所在索引
my_list.index('張三')
my_list.index('張三', 1, 4)
# 查詢(xún)數(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ò)展原來(lái)的列表) |
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的元組與列表類(lèi)似,不同之處在于元組的元素不能修改。
# tuple元組 my_tuple = (1, 2, 3, 4) # 查-某個(gè)值 print(my_tuple[1]) # 查—查詢(xún)所在索引位置(前閉右開(kāi)區(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、查詢(xún)?cè)?
# 查-查詢(xún)單個(gè)(無(wú)值異常)
print(my_info['name'])
print(my_info['age'])
# 查-查詢(xún)單個(gè)(無(wú)值返回 None)
print(my_info.get('name1'))
# 查-查詢(xún)單個(gè)(無(wú)值返回 指定值)
print(my_info.get('name2', '李四'))
# 2、修改元素
my_info['name'] = '王五'
# 3、添加元素
# 添加元素-鍵不存在則添加
my_info['id'] = 1234
# 4、刪除元素
# 刪除元素-刪除單個(gè)元素
del my_info['id']
# 刪除-刪除字典(查詢(xún)會(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) | 類(lèi)似, 但如果鍵不存在于字典中,將會(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è)無(wú)序的不重復(fù)元素序列。
- 集合中的元素不會(huì)重復(fù),并且可以進(jìn)行交集、并集、差集等常見(jià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è)集合是否包含相同的元素,如果沒(méi)有返回 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
| 方法 | 作用 | 返回類(lèi)型 |
|---|---|---|
| eval(字符串表達(dá)式) | eval() 函數(shù)用來(lái)執(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ǔ)存到文件中 | 無(wú)返回 |
| json.load() | 將文件中的json的格式轉(zhuǎn)化成python對(duì)象提取出來(lái) | 返回python對(duì)象 |
五、其它函數(shù)
1、print()
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
objects:復(fù)數(shù),表示可以一次輸出多個(gè)對(duì)象。輸出多個(gè)對(duì)象時(shí),需要用 , 分隔。sep:用來(lái)間隔多個(gè)對(duì)象,默認(rèn)值是一個(gè)空格。end:用來(lái)設(shè)定以什么結(jié)尾。默認(rèn)值是換行符 \n,我們可以換成其他字符串。file:要寫(xiě)入的文件對(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常見(jiàn)數(shù)據(jù)類(lèi)型處理的文章就介紹到這了,更多相關(guān)Python數(shù)據(jù)類(lèi)型處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python使用線(xiàn)程封裝的一個(gè)簡(jiǎn)單定時(shí)器類(lèi)實(shí)例
這篇文章主要介紹了python使用線(xiàn)程封裝的一個(gè)簡(jiǎn)單定時(shí)器類(lèi),實(shí)例分析了Python線(xiàn)程的使用及定時(shí)器類(lèi)的實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-05-05
pyppeteer執(zhí)行js繞過(guò)webdriver監(jiān)測(cè)方法下
這篇文章主要為大家介紹了pyppeteer上執(zhí)行js并繞過(guò)webdriver監(jiān)測(cè)常見(jiàn)方法的上篇,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04
簡(jiǎn)單談?wù)刾ython基本數(shù)據(jù)類(lèi)型
在Python中,能夠直接處理的數(shù)據(jù)類(lèi)型有以下幾種:#整型 int,#浮點(diǎn)型 float,#布爾型 bool,#復(fù)數(shù)型 (在python中用小寫(xiě) j ,表示虛部,用其他的字母不行)complex2018-09-09
Win10系統(tǒng)下安裝labelme及json文件批量轉(zhuǎn)化方法
這篇文章主要介紹了Win10系統(tǒng)下安裝labelme及json文件批量轉(zhuǎn)化的方法,文中較詳細(xì)的給大家介紹了安裝過(guò)程 ,需要的朋友可以參考下2019-07-07
Python實(shí)現(xiàn)歷史記錄功能(實(shí)際案例)
很多應(yīng)用程序都有瀏覽用戶(hù)的歷史記錄的功能,瀏覽器可以查看最近訪(fǎng)問(wèn)過(guò)的網(wǎng)頁(yè),現(xiàn)在我們制作了一個(gè)簡(jiǎn)單的猜數(shù)字的小游戲,添加歷史記錄功能,顯示用戶(hù)最近猜過(guò)的數(shù)字,如何實(shí)現(xiàn)呢?跟隨小編一起看看吧2022-04-04
python3 自動(dòng)打印出最新版本執(zhí)行的mysql2redis實(shí)例
這篇文章主要介紹了python3 自動(dòng)打印出最新版本執(zhí)行的mysql2redis實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04

