【python】3_容器

目錄

一、列表 list

1.1基本語法

1.2 常用操作方法

1.3 列表的遍歷

二、元組 tuple

特點:

三、字符串

常用操作方法:

四、序列

操作方法:切片

五、元素

特點:

?基本語法:

集合常用功能:

六、字典

定義:

注意事項:


什么是容器

????????可以存儲多個元素的python數據類型

python有哪些數據容器

? ? ? ? list(列表)、tuple(元組)、str(字符串)、set(集合)、dict(字典)

一、列表 list

1.1基本語法

# 定義變量

變量名稱 = [元素1, 元素2,... ]

# 空變量

變量名稱 = [ ]

變量名稱 = list()

# 嵌套

變量名稱 = [ [ 元素1,元素2,... ] , [ 元素1,元素2,... ]?]

#下標索引

左到右從0開始,右到左從-1開始

代碼示例

list_name = ["aaa", "bbb", "ccc"]
print(list_name)
print(type(list_name))list_name = ["aaa", 123, True]
print(list_name)
print(type(list_name))list_name = [ [1,2,3], [4,5,6] ]
print(list_name[1][1]) # 5
print(list_name[1][-2]) # 5
print(list_name)
print(type(list_name))

1.2 常用操作方法

?查找某元素在列表中的下標索引

語法:列表.index(元素)

修改特定位置的元素值

語法:列表.index [?下標 ]?= 值

指定位置插入元素

語法:列表.insert?( 下標 ,值?)

追加元素,指定元素插入列表尾部

語法1:列表.append( 元素 )

語法2:列表.extend ( 其他數據容器?)

刪除元素

語法1:del 列表[ 下標?]

語法2:列表.pop( 下標?)? # 刪除指定元素后返回這個元素的內容

刪除元素在列表中第一個匹配的內容

語法:列表.remove( 元素 )

清空列表元素

語法:列表.clear()

統計某元素在列表中的數量

語法:列表.count( 元素 )

統計列表中的所有元素個數

語法:len(列表)

代碼示例?

list_name = [1, 2, 3, 4, 5]
print(list_name.index(3)) # 2list_name[2] = -3
print(list_name) # [1, 2, -3, 4, 5]list_name.insert(2, 3)
print(list_name) # [1, 2, 3, -3, 4, 5]list_name.append(6)
print(list_name) # [1, 2, 3, -3, 4, 5, 6]list_name2 = [7, 8]
list_name.extend(list_name2)
print(list_name) # [1, 2, 3, -3, 4, 5, 6, 7, 8]del list_name[3]
print(list_name) # [1, 2, 3, 4, 5, 6, 7, 8]
num = list_name.pop(7)
print(list_name,num) # [1, 2, 3, 4, 5, 6, 7] 8list_name.remove(7)
print(list_name) # [1, 2, 3, 4, 5, 6]print(list_name.count(2)) # 1
print(len(list_name)) # 6list_name.clear()
print(list_name) # []

1.3 列表的遍歷

while遍歷?

while_list = [1,2,3]
index = 0
while index < len(while_list):element = while_list[index]print(f"列表while_list元素:{element}")index += 1

?for遍歷

for_list = [1,2,3,4,5]
for element in for_list:print(f"列表for_list元素:{element}")

二、元組 tuple

特點:
  • 內容不可修改 (若內部嵌套一個 list 則可修改 list 中的內容)
  • 語法: 變量名稱 = ( 元素1 , 元素2,...)
  • 單個元素的元組:? 變量名稱 = ( 元素 ,)
  • 與 list 基本相同
  • 支持for循環和while循環

三、字符串 str

常用操作方法:

將字符串內的全部字符串1,改為字符串2。不會修改原字符串,會得到一個新的字符串:

字符串.replace("字符串1" ,"字符串2")

對字符串進行分割,會得到一個新的列表

字符串.split(字符串)

?

其他操作方法與之前相同

代碼示例

s = "jian yi"
new_s = s.replace("i", "o")
print(f"新字符串為{new_s}")  # 新字符串為joan yo
s_list = s.split(" ")
print(f"分割前的字符串為:{s}、分割后:{s_list}、分割后類型為:{type(s_list)}")  # 分割前的字符串為:jian yi、分割后:['jian', 'yi']、分割后類型為:<class 'list'>

四、序列

概念:內容連續、有序,可使用下標索引的一類數據容器。

列表、元組、字符串,均可視為序列

操作方法:切片

序列[起始下標:結束下標:步長]? # 步長默認為1

?代碼示例

list1 = [1,2,3,4,5,6,7]
new_list1 = list1[1:5]
print(f"{new_list1}")list1 = [1,2,3,4,5,6,7]
new_list1 = list1[5:1:-1]
print(f"{new_list1}")str1 = "0123456789"
new_str1 = str1[::-1] # 等同于反轉
print(f"{new_str1}")

五、集合 set

特點:

之前所學容器對內容都可重復的、而元素不支持重復元素

不支持下標索引訪問

?基本語法:

#? 定義集合字面量

{元素1 ,元素2,...}

#? 定義集合變量

變量名稱 = {元素1 ,元素2,...}

#? 定義空集合

變量名稱 = set( )

集合常用功能:

集合內添加一個元素:集合.add(元素)

移除集合內指定元素:集合.remove(元素)

從集合中隨機取出一個元素:集合.pop()

將集合清空:集合.clear()

得到新集合,內含兩個集合的差集,原有的2個集合內容不變:集合1.difference(集合2)

集合1中刪除集合2中存在的元素,集合1會被修改集合2不變:集合1.difference_update(集合2)

兩集合相加(不含重復元素):集合1.union(集合2)

得到集合中元素數量:len(集合)

?代碼示例

# 集合的定義
set1 = {1,2,3,4,5,6,7,8,8}
set2 = set()
print(f"set1的內容:{set1},類型為:{type(set1)}") # set1的內容:{1, 2, 3, 4, 5, 6, 7, 8},類型為:<class 'set'>
print(f"set2的內容:{set2},類型為:{type(set2)}") # set2的內容:set(),類型為:<class 'set'>
# 添加新元素
set1.add(9)
print(f"set1的內容:{set1}") # set1的內容:{1, 2, 3, 4, 5, 6, 7, 8, 9}、
# 移除元素
set1.remove(9)
print(f"set1的內容:{set1}") # set1的內容:{1, 2, 3, 4, 5, 6, 7, 8}
# 隨機取出一個元素
element = set1.pop()
print(f"隨機取出來的元素為:{element}") # 1
print(f"set1的內容:{set1}") # set1的內容:{2, 3, 4, 5, 6, 7, 8}
# 清空集合
set1.clear()
print(f"set1的內容:{set1}") # set1的內容:set()
# 取兩個集合的差集
set1 = {1,2,3}
set2 = {2,3,4}
set3 = set1.difference(set2)
print(f"set3的內容:{set3}") # set3的內容:{1}
print(f"set1的內容:{set1}") # set1的內容:{1, 2, 3}
print(f"set2的內容:{set2}") # set2的內容:{2, 3, 4}
# 消除兩集合的差集
set1.difference_update(set2)
print(f"set1的內容:{set1}") # set1的內容:{1}
print(f"set2的內容:{set2}") # set2的內容:{2, 3, 4}
# 兩個集合合并為一個
set1 = {1,2,3}
set2 = {2,3,4}
set3 = set1.union(set2)
print(f"set3的內容:{set3}") # set3的內容:{1, 2, 3, 4}
# 統計集合元素數量
set1 = {1,2,3,4,4,5,6,7,65,74,353}
num = len(set1)
print(f"set1內元素數量為:{num}") # set1內元素數量為:10
# 集合的遍歷 --- 不能使用while循環進行,因為不支持下標訪問
set1 = {2,3,4}
for element in set1:print(f"集合的元素有:{element}")

六、字典 dict

定義:

# 定義字典變量

dict1 = {key:value,key:value,key:value}

# 定義空字典

dict1 = { }

dict2 = dict()

注意事項:
  • 鍵值對的key和value可以是任意類型(key不能為字典)
  • 字典內key不允許重復,重復添加等于覆蓋原有數據
  • 字典不可用下標索引,而是通過key檢索value

代碼示例

dict1 = {"張":1,"王":2,"李":3,"趙":4}
print(f"{dict1},類型為:{type(dict1)}") # {'張': 1, '王': 2, '李': 3, '趙': 4},類型為:<class 'dict'>
# 新增元素 | 更新元素
dict1["五"] = 5
dict1["張"] = 10
print(f"新增元素和更新元素后的dict1{dict1}") # 新增元素和更新元素后的dict1{'張': 10, '王': 2, '李': 3, '趙': 4, '五': 5}
# 刪除元素
num = dict1.pop("張")
print(f"刪除后的dict1{dict1},對應的value為:{num}") # 刪除后的dict1{'王': 2, '李': 3, '趙': 4, '五': 5},對應的value為:10
# 獲取全部的key
keys = dict1.keys()
print(f"獲取的dict1的全部的key為:{keys}") # 獲取的dict1的全部的key為:dict_keys(['王', '李', '趙', '五'])
# 遍歷字典
for key in keys:print(f"字典的key為:{key}")print(f"字典的value為:{dict1[key]}")for key in dict1:print(f"字典的key為:{key}")print(f"字典的value為:{dict1[key]}")
# 統計字典內元素數量
num = len(dict1)
print(f"字典中元素個數是:{num}") # 字典中元素個數是:4 

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

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

相關文章

三角拓撲聚合優化器TTAO-Transformer-BiLSTM多變量回歸預測(Maltab)

三角拓撲聚合優化器TTAO-Transformer-BiLSTM多變量回歸預測&#xff08;Maltab&#xff09; 完整代碼私信回復三角拓撲聚合優化器TTAO-Transformer-BiLSTM多變量回歸預測&#xff08;Maltab&#xff09; 一、引言 1、研究背景和意義 在現代數據科學領域&#xff0c;時間序列…

Jenkins+gitee 搭建自動化部署

Jenkinsgitee 搭建自動化部署 環境說明&#xff1a; 軟件版本備注CentOS8.5.2111JDK1.8.0_211Maven3.8.8git2.27.0Jenkins2.319最好選穩定版本&#xff0c;不然安裝插件有點麻煩 一、安裝Jenkins程序 1、到官網下載相應的版本war或者直接使用yum安裝 Jenkins官網下載 直接…

AI 編程開發插件codeium Windsurf(vscode、editor) 安裝

1、vscode中安裝&#xff1a; 2、vscode中使用 3、輸入注冊的賬號密碼&#xff0c;就可以使用。 4、或者直接下載editor 5、安裝editor 下一步&#xff0c;下一步&#xff0c;直到安裝成功&#xff0c;中間可以改下安裝位置&#xff0c;如果C盤空間不夠。 同樣提示注冊或者登錄…

【Mac排錯】ls: command not found 終端命令失效的解決辦法

【TroubleShooting on Mac】ls: command not found 終端命令失效的解決辦法 A Solution to Solve “Command not found” of Terminal on Mac 一直在使用心愛的MacBook Pro的Terminal&#xff0c;并且為她定制了不同的Profile。 這樣&#xff0c;看起來她可以在不同季節&…

502 Bad Gateway 錯誤詳解:從表現推測原因,逐步排查直至解決

502 Bad Gateway 錯誤通常意味著服務器之間的通信失敗&#xff0c;但導致的具體原因往往因場景而異。 場景一&#xff1a;高峰期頻繁出現 502 錯誤 1.1 現象 在流量高峰期間&#xff08;如促銷活動、直播發布等&#xff09;&#xff0c;頁面訪問變慢甚至出現 502 錯誤&#…

河北某石油管廊自動化監測

1. 項目簡介 近年來&#xff0c;國家密集出臺油氣管道建設相關政策和規劃引導中國油氣管道加快建設&#xff0c;2017年&#xff0c;在《中長期油氣管網規劃》中對2025年和2030年油氣管道發展目標均作出了相應的規劃目標。另一方面&#xff0c;隨著油氣管道行業的發展&#xff…

問題:通過策略模式+工廠模式+模板方法模式實現ifelse優化

項目場景&#xff1a; 提示&#xff1a;這里簡述項目相關背景&#xff1a; 示例&#xff1a;商城系統有會員系統&#xff0c;不同會員有不同優惠程度&#xff0c;普通會員不優惠&#xff1b;黃金會員打8折&#xff1b;白金會員優惠50元&#xff0c;再打7折&#xff1b; 問題描…

深入 JVM 虛擬機:字符串常量池演變與 intern() 方法工作原理解析

?? 作者主頁: 有來技術 ?? 開源項目: youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template ?? 倉庫主頁: GitCode︱ Gitee ︱ Github ?? 歡迎點贊 ?? 收藏 ?評論 ?? 如有錯誤敬請糾正! 前言 在 Java 開發中,字符串常量池(String Constant…

Android ndk兼容 64bit so報錯

1、報錯logcat如下 2025-01-13 11:34:41.963 4687-4687 DEBUG pid-4687 A #01 pc 00000000000063b8 /system/lib64/liblog.so (__android_log_default_aborter16) (BuildId: 467c2038cdfa767245f9280e657fdb85) 2025…

centos安裝Nexus Repository OSS(Maven私服)

1. 下載鏈接&#xff1a;https://help.sonatype.com/en/download.html 2. 注意頁面下載頁面中的要求&#xff1a;JDK17&#xff08;啟動時提示最低JDK1.8最高JDK17&#xff0c;但是使用JDK1.8無法正常啟動&#xff09; 3. mkdir /opt/nexus 將壓縮包上傳到該目錄并解壓。 tar …

b站——《【強化學習】一小時完全入門》學習筆記及代碼(1-3 多臂老虎機)

問題陳述 我們有兩個多臂老虎機&#xff08;Multi-Armed Bandit&#xff09;&#xff0c;分別稱為左邊的老虎機和右邊的老虎機。每個老虎機的獎勵服從不同的正態分布&#xff1a; 左邊的老虎機&#xff1a;獎勵服從均值為 500&#xff0c;標準差為 50 的正態分布&#xff0c;即…

1.推薦算法基本概念

推薦算法是一個非常重要且廣泛應用的領域&#xff0c;特別是在電子商務、社交媒體、內容推薦等領域。第一課我們將介紹推薦算法的基本概念和分類&#xff0c;并簡單講解兩種常見的推薦算法&#xff1a;協同過濾和基于內容的推薦。 推薦算法的基本概念 推薦系統的目標是根據用…

FFmpeg + OpenGL ES 美顏相機教程大綱

做OpenGL和FFmpeg也有很長一段時間了&#xff0c;最近打算結合FFmpegOpenGL ES做一期視頻教程&#xff0c;下面是完整視頻教程大綱。最終的項目實戰效果是實現一款美顏相機。教程分為理論講解和實戰開發兩部分&#xff0c;適合有一定編程基礎的開發者。課程計劃是免費發布在B站…

Linux:安裝 node 及 nvm node 版本管理工具(ubuntu )

目錄 方法一&#xff1a;手動下載安裝文件安裝方法二&#xff1a;curl安裝 方法一&#xff1a;手動下載安裝文件安裝 git clone 遠程鏡像 git clone https://gitee.com/mirrors/nvm安裝 nvm bash install.sh刷新配置&#xff0c;使配置在終端生效 // 方法 1 source /root/.…

基于STM32的ADS1230驅動例程

自己在練手項目中用到了ADS1230&#xff0c;根據芯片手冊自寫的驅動代碼&#xff0c;已測可用&#xff0c;希望對將要用到ADS1230芯片的人有所幫助。 芯片&#xff1a;STM32系列任意芯片、ADS1230 環境&#xff1a;使用STM32CubeMX配置引腳、KEIL 部分電路&#xff1a; 代碼…

游戲引擎學習第98天

倉庫:https://gitee.com/mrxiao_com/2d_game_2 開始進行一點回顧 今天的目標是繼續實現正常貼圖的操作&#xff0c;盡管目前我們還沒有足夠的光照信息來使其完全有用。昨日完成了正常貼圖相關的基礎工作&#xff0c;接下來將集中精力實現正常貼圖的基本操作&#xff0c;并準備…

Windows 本地部署大模型 OpenWebUI+Ollama

安裝Ollama Ollama官方網址&#xff1a;https://ollama.com 下載運行大模型 在Ollama官網中查看需要下載的大模型 https://ollama.com/library 復制圖片中的鏈接 打開cmd&#xff0c;運行此命令&#xff08;此過程會時間會很久&#xff09; 下載Miniconda Miniconda作用是…

C# 數據驗證Regex

Regular Expression&#xff0c;簡稱 Regex,是一種用于匹配和處理文本的強大工具。它通過定義特定的模式&#xff0c;可以用來搜索、替換或提取字符串中的特定內容。 先引入命名空間 using System.Text.RegularExpressions; Intege(整數) 必須是正整數 //必須是正整數publi…

npm運行Vue項目報錯 error:0308010c:digital envelope routines::unsupported

大家好&#xff0c;我是 程序員碼遞夫。 問題 VSCode 運行Vue項目&#xff0c;提示錯誤&#xff1a; building 2/2 modules 0 activeError: error:0308010c:digital envelope routines::unsupported 解決方法 原因是 npm 高版本(大于17)&#xff0c;對ssl的處理做了改進&…

DeepSeek-R1技術革命:用強化學習重塑大語言模型的推理能力

引言&#xff1a;低成本高性能的AI新范式 在2025年1月&#xff0c;中國AI公司DeepSeek發布了兩個標志性模型——DeepSeek-R1-Zero與DeepSeek-R1&#xff0c;以僅600萬美元的訓練成本實現了與OpenAI O1系列&#xff08;開發成本約5億美元&#xff09;相當的推理性能&#xff0c…