Python常見數據類型處理

一、數據類型分類

Python3 中常見的數據類型有:

  • Number(數字)
  • String(字符串)
  • bool(布爾類型)
  • List(列表)
  • Tuple(元組)
  • Set(集合)
  • Dictionary(字典)

Python3 的六個標準數據類型中:

  • **不可變數據(3 個):**Number(數字)、String(字符串)、Tuple(元組);

  • **可變數據(3 個):**List(列表)、Dictionary(字典)、Set(集合)。

  • 基本

    • Number(數字)
    • 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} 

二、基本數據類型

1、Number(數字)

  • Python3 支持 int、float、bool、complex(復數)
  • 在Python 3里,只有一種整數類型 int,表示為長整型,沒有 python2 中的 Long。
  • 像大多數語言一樣,數值類型的賦值和計算都是很直觀的。
  • 內置的type()函數可以用來查詢變量所指的對象類型。
  • Python可以同時為多個變量賦值,如a, b = 1, 2。
  • 一個變量可以通過賦值指向不同類型的對象。
  • 數值的除法包含兩個運算符:/ 返回一個浮點數,// 返回一個整數。
  • 在混合計算時,Python會把整型轉換成為浮點數
>>> 5 + 4  # 加法
9
>>> 4.3 - 2 # 減法
2.3
>>> 3 * 7  # 乘法
21
>>> 2 / 4  # 除法,得到一個浮點數
0.5
>>> 2 // 4 # 除法,得到一個整數
0
>>> 17 % 3 # 取余 
2
>>> 2 ** 5 # 乘方
32

2、String(字符串)

  • 反斜杠可以用來轉義,使用r可以讓反斜杠不發生轉義。
  • 字符串可以用+運算符連接在一起,用*運算符重復。
  • Python中的字符串有兩種索引方式,從左往右以0開始,從右往左以-1開始。
  • Python中的字符串不能改變。
print(str[0:-1])     # 打印字符串第一個到倒數第二個字符(不包含倒數第一個字符)
print(str[0])        # 打印字符串的第一個字符
print(str[2:5])      # 打印字符串第三到第五個字符(包含第五個字符)
print(str[2:])       # 打印字符串從第三個字符開始到末尾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 使用反斜杠\ 轉義特殊字符,如果你不想讓反斜杠發生轉義,可以在字符串前面添加一個r,表示原始字符串:

print('Ru\noob')
Ru
oob
print(r'Ru\noob')
Ru\noob

encode()decode()方法

  • encode() 方法以指定的編碼格式編碼字符串。errors參數可以指定不同的錯誤處理方案。
  • decode() 方法以指定的編碼格式解碼 bytes 對象。默認編碼為 ‘utf-8’。
  • 該方法返回編碼后的字符串,它是一個 bytes 對象。
str.encode(encoding='UTF-8',errors='strict')
bytes.decode(encoding="utf-8", errors="strict")
  • encoding – 要使用的編碼,如: UTF-8。
  • errors – 設置不同錯誤的處理方案。默認為 ‘strict’,意為編碼錯誤引起一個UnicodeError。 其他可能得值有 ‘ignore’, ‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 以及通過 codecs.register_error() 注冊的任何值。
#!/usr/bin/python3str = "菜鳥教程"
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'))

結果:

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('{}網址: "{}!"'.format('菜鳥教程', 'www.runoob.com'))
# 2、
print('{name}網址: {site}'.format(name='菜鳥教程', site='www.runoob.com'))# 3、
print('{0} 和 {1}'.format('Google', 'Runoob'))
# 可以任意組合
print('站點列表 {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 都是關鍵字,表示布爾值。

布爾類型可以用來控制程序的流程,比如判斷某個條件是否成立,或者在某個條件滿足時執行某段代碼。

布爾類型特點:

  • 布爾類型只有兩個值:True 和 False。
  • 布爾類型可以和其他數據類型進行比較,比如數字、字符串等。在比較時,Python 會將 True 視為 1,False 視為 0。
  • 布爾類型可以和邏輯運算符一起使用,包括 and、or 和 not。這些運算符可以用來組合多個布爾表達式,生成一個新的布爾值。
  • 布爾類型也可以被轉換成其他數據類型,比如整數、浮點數和字符串。在轉換時,True 會被轉換成 1,False 會被轉換成 0。
a = True
b = False# 比較運算符
print(2 < 3)   # True
print(2 == 3)  # False# 邏輯運算符
print(a and b)  # False
print(a or b)   # True
print(not a)    # False# 類型轉換
print(int(a))   # 1
print(float(b)) # 0.0
print(str(a))   # "True"

Python3 中,boolint 的子類,TrueFalse可以和數字相加,True==1、False==0會返回True,但可以通過is來判斷類型。

a1 = True
print(type(a1))
print(a1 + 100)<class 'bool'>
101

4、Bytes

字符串轉為Bytes

# 解析為bytes:b'Hello,World'
print('Hello,World'.encode())

Bytes轉為字符串

# 創建一個bytes對象
bytes_data = b'Hello, World!'# b'Hello, World!'
print(bytes_data)# 將bytes對象轉換為字符串
string_data = bytes_data.decode('utf-8')
print(string_data)

三、多值存儲

1、List(列表)

增、刪、改、查:

my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8]
# 1、增
my_list.append('333')
# 將另一個集合中添加到列表中
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)
# 查詢數量
my_list.count('張三')

其它

# 循環
for one in my_list:# print(one)print(one, end='==')print(one, end='==\n%%% ')# 排序
# 排序-正序
my_list.sort()
# 排序-倒敘
my_list.sort(reverse=True)

函數內置方法

方法序號
list.append(obj)在列表末尾添加新的對象
list.count(obj)統計某個元素在列表中出現的次數
list.extend(seq)在列表末尾一次性追加另一個序列中的多個值(用新列表擴展原來的列表)
list.index(obj)從列表中找出某個值第一個匹配項的索引位置
list.insert(index, obj)將對象插入列表
list.pop([index=-1\])移除列表中的一個元素(默認最后一個元素),并且返回該元素的值
list.remove(obj)移除列表中某個值的第一個匹配項
list.reverse()反向列表中元素
list.sort( key=None, reverse=False)對原列表進行排序
list.clear()清空列表
list.copy()復制列表

2、Tuple(元組)

Python的元組與列表類似,不同之處在于元組的元素不能修改。

# tuple元組
my_tuple = (1, 2, 3, 4)# 查-某個值
print(my_tuple[1])# 查—查詢所在索引位置(前閉右開區間)(起始索引:0)
print(my_tuple.index(2, 1, 3))
# 查-某值數量
print(my_tuple.count(1))

Python元組包含了以下內置函數

函數方法及描述實例
len(tuple)計算元組元素個數>>> tuple1 = ('Google', 'Runoob', 'Taobao')
max(tuple)返回元組中元素最大值max(tuple2)
min(tuple)返回元組中元素最小值min(tuple2)
tuple(iterable)將可迭代系列轉換為元組tuple1=tuple(['Google', 'Taobao', 'Runoob', 'Baidu'])

3、Dictionary(字典)

增刪改查

my_info = {'name': '張三', 'age': 18, 'address': '北京市'}
# 1、查詢元素
# 查-查詢單個(無值異常)
print(my_info['name'])
print(my_info['age'])
# 查-查詢單個(無值返回 None)
print(my_info.get('name1'))
# 查-查詢單個(無值返回 指定值)
print(my_info.get('name2', '李四'))# 2、修改元素
my_info['name'] = '王五'# 3、添加元素
# 添加元素-鍵不存在則添加
my_info['id'] = 1234# 4、刪除元素
# 刪除元素-刪除單個元素
del my_info['id']
# 刪除-刪除字典(查詢會報錯
del my_info
# 刪除—清空字段(值為{})
my_info.clear()

其它API

# 5、其它API
# 測量字典中,鍵值對的個數
print(len(my_info))# 返回一個包含字典所有KEY的列表
print(my_info.keys())# 返回一個包含字典所有value的列表
print(my_info.values())# 返回一個包含所有(鍵,值)元祖的列表
print(my_info.items())
方法函數及描述
dict.clear()刪除字典內所有元素
dict.copy()返回一個字典的淺復制
dict.fromkeys()創建一個新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對應的初始值
dict.get(key, default=None)返回指定鍵的值,如果鍵不在字典中返回 default 設置的默認值
key in dict如果鍵在字典dict里返回true,否則返回false
dict.items()以列表返回一個視圖對象
dict.keys()返回一個視圖對象
dict.setdefault(key, default=None)類似, 但如果鍵不存在于字典中,將會添加鍵并將值設為default
dict.update(dict2)把字典dict2的鍵/值對更新到dict里
dict.values()返回一個視圖對象
pop(key[,default\])刪除字典 key(鍵)所對應的值,返回被刪除的值。
popitem()返回并刪除字典中的最后一對鍵和值。

4、Set(集合)

  • 集合(set)是一個無序的不重復元素序列。
  • 集合中的元素不會重復,并且可以進行交集、并集、差集等常見的集合操作。
  • 可以使用大括號 { } 創建集合,元素之間用逗號 , 分隔, 或者也可以使用 set() 函數創建集合。
# 0、創建集合
set01 = {1, 2, 3, 4}            # 直接使用大括號創建集合
set02 = set([4, 5, 6, 7])      # 使用 set() 函數從列表創建集合# 1、增
# 1-1 將元素 x 添加到集合 s 中,如果元素已存在,則不進行任何操作。
set01.add(100)
# 1-2 添加元素,且參數可以是列表,元組,字典等
set01.update([1, 2, ])# 2、刪
# 2-1 將元素 x 從集合 s 中移除,如果元素不存在,則會發生錯誤
set01.remove(1)
# 2-2 移除集合中的元素,且如果元素不存在,不會發生錯誤
set01.discard(1)
# 2-3 隨機刪除集合中的一個元素
s.pop() # 3、其它
# 判斷元素是否在集合內(False)
print('1' in set03)
# 計算集合元素個數
print(len(set01))
# 清空集合
set01.clear()

集合內置方法完整列表

方法描述
add()為集合添加元素
clear()移除集合中的所有元素
copy()拷貝一個集合
difference()返回多個集合的差集
difference_update()移除集合中的元素,該元素在指定的集合也存在。
discard()刪除集合中指定的元素
intersection()返回集合的交集
intersection_update()返回集合的交集。
isdisjoint()判斷兩個集合是否包含相同的元素,如果沒有返回 True,否則返回 False。
issubset()判斷指定集合是否為該方法參數集合的子集。
issuperset()判斷該方法的參數集合是否為指定集合的子集
pop()隨機移除元素
remove()移除指定元素
symmetric_difference()返回兩個集合中不重復的元素集合。
symmetric_difference_update()移除當前集合中在另外一個指定集合相同的元素,并將另外一個指定集合中不同的元素插入到當前集合中。
union()返回兩個集合的并集
update()給集合添加元素
len()計算集合元素個數

四、其它

1、Json

方法作用返回類型
eval(字符串表達式)eval() 函數用來執行一個【字符串表達式】,并返回表達式的值。list、dict、tuple
json.dumps()將python對象編碼成Json字符串返回json字符串
json.loads()將Json字符串解碼成python對象返回python對象
json.dump()將python中的對象轉化成json儲存到文件中無返回
json.load()將文件中的json的格式轉化成python對象提取出來返回python對象

五、其它函數

1、print()

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
  • objects :復數,表示可以一次輸出多個對象。輸出多個對象時,需要用 , 分隔。
  • sep :用來間隔多個對象,默認值是一個空格。
  • end :用來設定以什么結尾。默認值是換行符 \n,我們可以換成其他字符串。
  • file :要寫入的文件對象。
  • flush :輸出是否被緩存通常決定于 file,但如果 flush 關鍵字參數為 True,流會被強制刷新。
# 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='==')

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/15369.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/15369.shtml
英文地址,請注明出處:http://en.pswp.cn/web/15369.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

詳解 Spring MVC(Spring MVC 簡介)

什么是 Spring MVC&#xff1f; Spring MVC 是 Spring 框架提供的一個基于 MVC 模式的輕量級 Web 框架&#xff0c;是 Spring 為表示層開發提供的一整套完整的解決方案&#xff0c;Spring MVC 使用了 MVC 架構模式&#xff0c;將 Web 層職責解耦&#xff0c;基于請求驅動模型&…

基于Java、SpringBoot和uniapp在線考試系統安卓APP和微信小程序

摘要 基于Java、SpringBoot和uniapp的在線考試系統安卓APP微信小程序是一種結合了現代Web開發技術和移動應用技術的解決方案&#xff0c;旨在為教育機構提供一個方便、高效和靈活的在線考試平臺。該系統采用Java語言進行后端開發&#xff0c;使用SpringBoot框架簡化企業級應用…

SpringCloud微服務之Nacos、Feign、GateWay詳解

SpringCloud微服務之Nacos、Feign、GateWay詳解 1、Nacos配置管理1.1、統一配置管理1.1.1、在nacos中添加配置文件1.1.2、從微服務拉取配置 1.2、配置熱更新1.2.1、方式一1.2.2、方式二 1.3、配置共享1.3.1、配置共享的優先級 1.4、搭建nacos集群1.4.1、初始化數據庫1.4.2、下載…

plt多子圖設置

import matplotlib.pyplot as plt# 使用 subplots 函數創建一個 2x3 的子圖網格 fig, axs plt.subplots(nrows2, ncols3, figsize(16, 10)) # 調整 figsize 來改變圖像大小# 遍歷每個子圖&#xff0c;并繪制一些內容&#xff08;這里只是簡單的示例&#xff09; for ax in ax…

React與Vue的區別?

一、區別: 1. 語法 Vue采用自己特有的模板語法&#xff1b; React是單向的&#xff0c;采用jsx語法創建react元素。 2.監聽數據變化的實現原理不同 Vue2.0 通過Object.defineproperty()方法的getter/setter屬性, 實現數據劫持, 每次修改完數據會觸發diff算法(雙端對比) …

VUE 頁面生命周期基本知識點

在 Vue.js 中&#xff0c;頁面生命周期&#xff08;更準確地說是組件生命周期&#xff09;指的是組件從創建到銷毀的一系列過程。了解這些生命周期鉤子可以幫助我們更好地管理組件的狀態和行為。以下是 Vue 組件的主要生命周期鉤子&#xff1a; beforeCreate 在實例初始化之后&…

vue使用element plus組件上傳服務器

在Vue項目中使用Element Plus組件上傳文件到服務器&#xff0c;你可以使用ElUpload組件。以下是一個簡單的示例&#xff0c;展示了如何使用ElUpload組件來上傳文件&#xff0c;并將其保存到服務器。 首先&#xff0c;確保你已經安裝了Element Plus。 npm install element-plu…

從入門到精通:詳解Linux進程管理

前言 在這篇文章中&#xff0c;我將帶領大家深入學習和理解Linux系統中的進程管理。無論你是初學者還是有一定經驗的開發者&#xff0c;相信這篇文章都會對你有所幫助。我們將詳細講解馮諾依曼體系結構、操作系統概念、進程管理、進程調度、進程狀態、環境變量、內存管理以及其…

C語言之函數和函數庫以及自己制作靜態動態鏈接庫并使用

一&#xff1a;函數的本質 1&#xff1a;C語言為什么會有函數 &#xff08;1&#xff09;整個程序分為多個源文件&#xff0c;一個文件分為多個函數&#xff0c;一個函數分成多個語句&#xff0c;這就是整個程序的組織形式。這樣的組織好處在于&#xff1a;分化問題、、便于程序…

分布式版本控制工具 git

git 是什么 分布式版本控制工具。github 是代碼托管平臺。 git 有什么用 保存文件的所有修改記錄。使用版本號&#xff08;sha1 哈希值&#xff09; 進行區分。隨時可瀏覽歷史版本記錄。可還原到歷史指定版本。對比不同版本的文件差異。 為什么要使用 git 多人協作開發一個大…

SQL 優化

SQL 優化是指通過各種手段提高 SQL 查詢的執行效率,減少資源消耗,提高數據庫的整體性能。以下是一些詳細的 SQL 優化方法,包括索引優化、查詢優化、數據庫設計優化等。 1. 索引優化 創建適當的索引: 單列索引:在查詢中頻繁使用的單個列上創建索引。多列索引(復合索引):…

STM32手寫超頻到128M函數

今天學習了野火的STM32教程學會了如何設置STM32的時鐘頻率&#xff0c;步驟比較詳細&#xff0c;也很容易理解&#xff0c;就是視頻教程不能跳著看&#xff0c;只能一節節的看&#xff0c;不然會知識不連貫&#xff0c;造成有些知識不理解&#xff0c;連續著看還是沒有什么難度…

docker-file 網絡

docker掛載 1.綁定掛載&#xff08;Bind Mounts&#xff09;&#xff1a;綁定掛載是將主機上的文件或目錄掛載到容器中。 docker run -v /host/path:/container/path image_name 2.卷掛載&#xff08;Volume Mounts&#xff09;&#xff1a;卷掛載將 Docker 數據卷掛載到容器中…

【CTF Web】CTFShow web4 Writeup(SQL注入+PHP+字符型注入)

web4 1 管理員阿呆又失敗了&#xff0c;這次一定要堵住漏洞 解法 注意到&#xff1a; <!-- flag in id 1000 -->攔截很多種字符&#xff0c;連 select 也不給用了。 if(preg_match("/or|\-|\\\|\/|\\*|\<|\>|\!|x|hex|\(|\)|\|select/i",$id)){die(&q…

yolov8推理由avi改為mp4

修改\ultralytics-main\ultralytics\engine\predictor.py&#xff0c;即可 # Ultralytics YOLO &#x1f680;, AGPL-3.0 license """ Run prediction on images, videos, directories, globs, YouTube, webcam, streams, etc.Usage - sources:$ yolo modepred…

Android開發-Android開發中的TCP與UDP通信策略的實現

Android 開發中的 TCP 與 UDP 通信策略的實現 1. 前言2. 準備工作3. Kotlin 中 TCP 通信實現客戶端代碼示例&#xff1a;服務器代碼示例&#xff1a; 4. Kotlin 中 UDP 通信實現客戶端代碼示例&#xff1a;服務器代碼示例&#xff1a; 5. TCP 與 UDP 應用場景分析TCP 實現可靠傳…

搭建訪問阿里云百煉大模型環境

最近這波大降價&#xff0c;還有限時免費&#xff0c;還不趕快試試在線大模型&#xff1f;下面整理訪問百煉平臺的千問模型方法。 創建RAM子賬號并授權 創建RAM子賬號 1. “訪問控制RAM”入口&#xff08;控制臺URL&#xff09; 然后點擊進入“RAM管理控制臺” 2. 添加用戶 …

vue 區分多環境打包

需求&#xff1a;區分不同的環境&#xff08;測試、正式環境&#xff09;&#xff0c;接口文檔地址不同&#xff1b; 配置步驟&#xff1a; 1、在根目錄下面新建 .env.xxx 文件&#xff08;xxx 根據環境不同配置&#xff09; 文件中一定要配置的參數項為&#xff1a;NODE_ENV…

【Python搞定車載自動化測試】——Python實現CAN總線Bootloader刷寫(含Python源碼)

系列文章目錄 【Python搞定車載自動化測試】系列文章目錄匯總 文章目錄 系列文章目錄&#x1f4af;&#x1f4af;&#x1f4af; 前言&#x1f4af;&#x1f4af;&#x1f4af;一、環境搭建1.軟件環境2.硬件環境 二、目錄結構三、源碼展示1.診斷基礎函數方法2.診斷業務函數方法…

python 火焰檢測

在日常生活,總是離不開火,有時候我們需要預防火災發生,但是我們又不可能一直盯著,這時候我們就需要一款程序幫我們盯著,一旦發生火災從而告知我們,今天就帶大家編寫這么一款應用。 安裝需要的庫 pip install opencv-python 代碼實現 import cv2 # Library for…