Python序列Day3

序列

序列是一種數據存儲方式,用方括號標注,逗號分隔的一組值。在內存中,序列就是一塊用來存放多個值的連續的內存空間。

常見序列結構有:字符串、列表、元組、字典、集合

列表

用于存儲任意數目,任意類型的數據集合

[]創建

a = [10,20,'www','ggg']
a = []     #創建一個空的列表對象

list()創建

使用list()可以將任意可迭代的數據轉化為列表。

a = list()  #創建一個空的列表對象
a  = list(range(10))   #range返回的是一個range對象,而不是列表
a
[0,1,2,3,4,5,6,7,8,10]a = list("wwwwww")
a
['w','w','w','w','w','w']

推導式生成列表

a = [x*2 for x in range(5)]
a
[0,2,4,6,8]

切片操作會返回新的對象

rgba = ["Red", "Green", "Blue","Alph"]
correct_rgba = rgba[:]
correct_rgba[-1] = "Alpha"
correct_rgba
["Red", "Green", "Blue", "Alpha"]
rgba
["Red", "Green", "Blue", "Alph"]

append()

原地修改列表對象,在列表尾部添加新的元素。不創建新的列表對象。

a = [10,20]
a.append(30)
a
[10,20,30]

+運算符

并不是真正在尾部添加元素,而是創建新的列表對象,將原列表的元素和新列表的元素依次復制到新的列表對象中。這樣會設計大量的復制操作,對于操作大量元素不建議使用。創建了新的列表對象。

extend()

將目標列表的所有元素添加到本列表的尾部,屬于原地操作,不創建新的列表對象。

a = [20,40]
a.extend([60,80])
a
[20,40,60,80]

insert()

將指定元素插入到列表對象的任意指定位置。這樣會讓插入位置后的所有元素移動。

乘法擴展

a = ['www',666]
b = a*3
a
['www',666,'www',666,'www',666]

del

刪除列表指定位置的元素

a = [1,2,3,40]
del a[1]
a
[1,3,40]

pop()

刪除并返回指定位置的元素,如果未指定位置則默認操作列表最后一個元素。

a = [10,20,30,40,50]
a.pop()
50
a
[10,20,30,40]

remove()

刪除首次出現的指定元素,若不存在該元素,拋出 ValueError 異常。

clear()

移除列表中的所有項。 類似于 del a[:]。

copy()

返回列表的淺拷貝。 類似于 a[:]。

列表也可以用作隊列,然而,列表作為隊列的效率很低。因為,在列表末尾添加和刪除元素非常快,但在列表開頭插入或移除元素卻很慢(因為所有其他元素都必須移動一位)。

實現隊列最好用 collections.deque,可以快速從兩端添加或刪除元素。

from collections import deque
queue = deque(["Eric", "John", "Michael"])
queue.append("Terry")           # Terry 到了
queue.append("Graham")          # Graham 到了
queue.popleft()                 # 第一個到的現在走了
'Eric'
queue.popleft()                 # 第二個到的現在走了
'John'
queue                           # 按到達順序排列的剩余隊列
deque(['Michael', 'Terry', 'Graham'])

元組tuple

元組屬于不可變序列,不能修改元組中的元素。因此,元組沒有增加元素、修改元素、刪除元素相關的方法。

()創建,小括號可以省略

a = (1,2,3)   # 或a = 1,2,3

**如果元組只有一個元素,則必須后面加逗號。**解釋器會把(1)解釋為整數1,(1,)才被解釋為元組。

# 元組可以嵌套:
t = (5,4,3,2,1)
u = t, (1, 2, 3, 4, 5)
u
((5,4,3,2,1), (1, 2, 3, 4, 5))# 但它們可以包含可變對象:
v = ([1, 2, 3], [3, 2, 1])
v
([1, 2, 3], [3, 2, 1])

zip

zip(列表1,列表2,…)將多個列表對應位置的元素組合成為元組,并返回這個zip對象。

a = [1,2,3]
b = [4,5,6]
c = [7,8,9]
d = zip(a,b,c)
list(d)
[(1,2,3),(4,5,6),(7,8,9)]

特點

  • 不可變序列
  • 元組的訪問和處理速度比列表快
  • 整數、字符串和元組可以作為字典的鍵,列表可變不能作為字典的鍵使用。

字典

字典是鍵值對的無序可變序列,字典中的每個元素都是一個“鍵值對”。字典是以 鍵 來索引的,鍵可以是任何不可變類型;字符串和數字總是可以作為鍵。 元組在其僅包含字符串、數字或元組時也可以作為鍵;如果一個元組直接或間接地包含了任何可變對象,則不可以用作鍵。字典的鍵必須是唯一的。

{},dict()創建字典對象

花括號 {} 用于創建空字典。

a = {'name':'www','age':18,'job':'student'}   #花括號
b = dict(name='www',age=18,job='student')	
c = dict([('name','www'),('age',18),('job','student')])  #鍵值對序列
d = {}
e = dict()

zip()

k = ['name','age','job']
v = ['www',18,'student']
d = dict(zip(k,v))
d
{'name':'www','age':18,'job':'student'}

字典元素的訪問

  • 通過鍵訪問值
a['name']
'www'
  • 通過get()獲取值
a.get('name')
'www'
  • 通過items()列出所有鍵值對
  • 通過keys()列出所有鍵
  • 通過values()列出所有值

字典核心底層原理

集合

集合是無序可變,元素不能重復。底層是字典實現,集合的所有元素都是字典的鍵對象,因此是不能重復的且唯一的。

使用{}創建集合對象

創建空集合只能用set(),不能用{},{}創建的是空字典。

a = {3,5,7}
a
{3,5,7}
a.add(9)
a
{9,3,5,7}

使用set(),將列表、元組等可迭代對象轉成結合。

a = ['a','b','c','b']
b = set(a)
b
{'a','b'},'c'

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

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

相關文章

私服與外掛:刑事法律風險的深度剖析

首席數據官高鵬律師團隊編著 在當今數字化時代,網絡游戲產業蓬勃發展,然而與之相伴的私服與外掛現象卻屢禁不止,且其背后隱藏著嚴重的刑事法律風險。作為一名律師,有必要在此對私服與外掛相關的刑事問題進行深入解讀,以…

Linux云計算訓練營筆記day04(Rocky Linux中的命令)

mv 移動(剪切) 源數據會消失 格式: mv 源文件 目標路徑 touch /opt/a.txt 創建文件 mv /opt/a.txt /root 移動文件,沒有改名 mkdir gongli 創建目錄 mv gongli /opt/ 移動目錄,沒有改名 mv /opt/gongli tedu 移動目錄,改名了 …

藍橋杯青少 圖形化編程——“星星”點燈

藍橋杯青少 圖形化編程——“星星”點燈 編程實現: 有10盞燈,從1到10按順序依次編號,初始時全部燈處于開啟狀態。有10個人也從1到10依次編號。第一個人(1號)將燈全部關閉,第二個人(2號&#x…

conda配置好的pytorch在jupyter中如何配置

配置 其實不用再配置了 如下圖(主要是激活pytorch環境,再jupyter notebook) jupyter運行快捷鍵shiftenter 新建文件夾folder,新建notebook 使用 幫助文檔(兩種方式) ctrl/ 注釋

COLT_CMDB_aix_diskinfo.sh

#!/bin/ksh #IT_BEGIN #IT_TYPE3 #IT SYSTEM_AIX_AGENTDISKDISCOVER|discovery.diskInfo[disc] #原型指標 #IT_RULE SYSTEM_AIX_IP|ipAddress[{#DISKNAME}] #IT_RULE SYSTEM_AIX_AGENTDISKPATH|diskPath[{#DISKNAME}] #IT_RULE SYSTEM_AIX_DISKNAME|diskName[{#DISKNAME}] #IT_…

IBM BAW(原BPM升級版)使用教程第五講

結前篇! 一、服務:外部服務 在 IBM Business Automation Workflow (BAW) 中,外部服務(External Services)是指在流程中調用和集成外部系統或服務的組件。外部服務允許IBM BAW與其他業務系統、應用程序或第三方服務進行…

如何用更少的顯存訓練 PyTorch 模型

文章目錄 1、引言 2、自動混合精度訓練 3、低精度訓練 4、梯度檢查點 5、通過梯度累積減小批量大小 6、張量分片與分布式訓練 7、高效數據加載 8、使用 In-Place 操作 9、Activation and Parameter Offloading 10、使用更精簡的優化器 11、高級策略 12、總結 1、引言 在訓練大…

極速輕量,Rust 網絡開發新選擇:Hyperlane 框架深度解析

極速輕量,Rust 網絡開發新選擇:Hyperlane 框架深度解析 在高性能網絡服務開發領域,Rust 憑借其內存安全與高效并發的特性備受青睞。今天,我們迎來一款專為現代 Web 服務打造的明星框架——Hyperlane,它以“輕量高效、…

單片機裸機環境下臨界區保護

目錄 1、直接中斷屏蔽法 2、嵌套計數優化法 3、BASEPRI寄存器應用 4、動態優先級調整策略 5、LDREX/STREX指令應用 6、位帶別名區原子訪問 7、上下文感知保護 8、中斷延遲優化技術 在嵌入式系統開發中,臨界區保護是確保系統可靠性的關鍵技術。本文以ARM Cor…

【deepseek教學應用】001:deepseek如何撰寫教案并自動實現word排版

本文講述利用deepseek如何撰寫教案并自動實現word高效完美排版。 文章目錄 一、訪問deepseek官網二、輸入教案關鍵詞三、格式轉換四、word進一步排版 一、訪問deepseek官網 官網:https://www.deepseek.com/ 進入主頁后,點擊【開始對話】,如…

springboot使用mybatisPlus進行數據庫增刪改查

springboot使用mybatisPlus進行數據庫增刪改查 提示:幫幫志會陸續更新非常多的IT技術知識,希望分享的內容對您有用。本章分享的是springboot的使用。前后每一小節的內容是存在的有:學習and理解的關聯性。【幫幫志系列文章】:每個…

基于SpringBoot的校園周邊美食探索及分享平臺的設計與實現

資源詳情: 私信我或點擊鏈接獲取: 基于SpringBoot的校園周邊美食探索及分享平臺的設計與實現資源-CSDN文庫 摘要 美食一直是與人們日常生活息息相關的產業。傳統的電話訂餐或者到店消費已經不能適應市場發展的需求。隨著網絡的迅速崛起,互聯…

到達最后一個房間的最少時間II 類似棋盤轉移規律查找

文章目錄 3342.到達最后一個房間的最少時間II 思路分析:最短路徑問題,當然,由于不同的格子之間的移動的代價不統一,所以這個最短路徑需要使用Dijkstra算法進行求解,對于直接使用Dijkstra算法模版的題目,大家可以先去做…

基于開源AI大模型AI智能名片S2B2C商城小程序源碼的私域流量穩定性構建研究

摘要:在私域流量時代,傳統實體零售的"時間積累"邏輯被直播電商等新業態顛覆。完美日記等新銳品牌通過構建私域流量池,實現了從0到1的指數級增長,而傳統品牌卻陷入"流量焦慮"。本文提出以開源AI大模型AI智能名…

做 iOS 調試時,我嘗試了 5 款抓包工具

日常做開發的人,特別是和客戶端接口打交道的同學,應該對“抓包”這件事不陌生。 調試登錄流程、分析接口格式、排查錯誤返回、分析網絡性能、甚至研究第三方 App 的數據通信……說到底,都繞不開“抓 HTTPS 包”這一步。 而這一步&#xff0…

Algolia - Docsearch的申請配置安裝【以踩坑解決版】

👨?🎓博主簡介 🏅CSDN博客專家 ??🏅云計算領域優質創作者 ??🏅華為云開發者社區專家博主 ??🏅阿里云開發者社區專家博主 💊交流社區:運維交流社區 歡迎大家的加入&#xff01…

nginx 配置后端健康檢查模塊

nginx自帶的針對后端節點健康檢查的功能比較簡單,通過默認自帶的ngx_http_proxy_module 模塊和ngx_http_upstream_module模塊中的參數來完成,當后端節點出現故障時,自動切換到健康節點來提供訪問。但是nginx不能事先知道后端節點狀態是否健康,后端即使有不健康節點,負載均…

平板收銀系統、國產系統,鴻蒙系統,小鍵盤的封裝與應用—仙盟創夢IDE

數字小鍵盤封裝 數組小鍵盤封裝是指將與數組小鍵盤相關的功能、操作、數據等進行整合,形成一個獨立的、可復用的模塊。封裝數組小鍵盤具有以下幾方面重要意義: 提高代碼可維護性 降低復雜度:數組小鍵盤在實際應用中,可能涉及到…

網工實驗——OSPF配置

網絡拓撲圖 配置 1.為每個路由器配置接口(略)(詳細見RIP實驗) 2.配置OSPF AR1 [AR1]ospf [AR1-ospf-1]area 1 [AR1-ospf-1-area-0.0.0.1]network 172.16.1.1 0.0.0.0 #精確配置網絡,也可以像下面那條命令那樣配置 …

Kubernetes client-go 客戶端類型與初始化指南

Kubernetes client-go 客戶端類型與初始化指南 在 Kubernetes 的 client-go 庫中,存在多種客戶端用于與 API 服務器交互。以下介紹主要客戶端類型,包括用途、初始化方式及 Demo。 1. RESTClient 用途 RESTClient 是底層 REST 客戶端,直接…