網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
一、數(shù)據(jù)容器:list(列表)
列表內(nèi)的每一個(gè)數(shù)據(jù),稱(chēng)之為元素
- 以 [] 作為標(biāo)識(shí)
- 列表內(nèi)每一個(gè)元素之間用, 逗號(hào)隔開(kāi)
定義語(yǔ)法:
[元素1, 元素2, 元素3, ......]
例:
list = ['iii', 666, '你好']
1.1 list取出元素
列表中的每一個(gè)元素,都有其位置下標(biāo)索引,從前向后的方向,從0開(kāi)始,依次遞增或者遞減
語(yǔ)法:列表[下標(biāo)],即可取出
1.2 列表的常用操作(方法)
1.2.1 列表的查詢(xún)功能(方法)
功能:查找指定元素在列表的下標(biāo),如果找不到,報(bào)錯(cuò)ValueError
語(yǔ)法:列表.index(元素)
1.2.2 列表的修改功能(方法)
修改特定位置(索引)的元素值:
語(yǔ)法:列表[下標(biāo)] = 值
可以使用如上語(yǔ)法,直接對(duì)指定下標(biāo)(正向、反向下標(biāo)均可)的值進(jìn)行:重新賦值(修改)
插入元素:
語(yǔ)法:列表.insert(下標(biāo), 元素)
,在指定的下標(biāo)位置,插入指定的元素
追加元素:
語(yǔ)法:列表.append(元素)
,將指定元素,追加到列表的尾部
追加元素方式2:
語(yǔ)法:列表.extend(其它數(shù)據(jù)容器)
,將其它數(shù)據(jù)容器的內(nèi)容取出,依次追加到列表尾部
刪除元素:
- 語(yǔ)法1:
del 列表[下標(biāo)]
- 語(yǔ)法2:
列表.pop(下標(biāo))
刪除某元素在列表中的第一個(gè)匹配項(xiàng):
語(yǔ)法:列表.remove(元素)
清空列表內(nèi)容:
語(yǔ)法:列表.clear()
統(tǒng)計(jì)某元素在列表內(nèi)的數(shù)量
語(yǔ)法:列表.count(元素)
1.2.3 列表的查詢(xún)功能(方法)
統(tǒng)計(jì)列表內(nèi),有多少元素
語(yǔ)法:len(列表)
可以得到一個(gè)int數(shù)字,表示列表內(nèi)的元素?cái)?shù)量
list = [21, 25, 21, 23, 22, 20] list.append(31) list.extend([29, 33, 30]) listone = list.pop() idx = list.index(31) print(idx)
使用方式 | 作用 |
---|---|
列表.append(元素) | 向列表中追加一個(gè)元素 |
列表.extend(容器) | 將數(shù)據(jù)容器的內(nèi)容依次取出,追加到列表尾部 |
列表.insert(下標(biāo), 元素) | 在指定下標(biāo)處,插入指定的元素 |
del 列表[下標(biāo)] | 刪除列表指定下標(biāo)元素 |
列表.pop(下標(biāo)) | 刪除列表指定下標(biāo)元素 |
列表.remove(元素) | 從前向后,刪除此元素第一個(gè)匹配項(xiàng) |
列表.clear() | 清空列表 |
列表.count(元素) | 統(tǒng)計(jì)此元素在列表中出現(xiàn)的次數(shù) |
列表.index(元素) | 查找指定元素在列表的下標(biāo) 找不到報(bào)錯(cuò)ValueError |
len(列表) | 統(tǒng)計(jì)容器內(nèi)有多少元素 |
1.3 列表的特點(diǎn)
- 可以容納多個(gè)元素(上限為2**63-1、9223372036854775807個(gè))
- 可以容納不同類(lèi)型的元素(混裝)
- 數(shù)據(jù)是有序存儲(chǔ)的(有下標(biāo)序號(hào))
- 允許重復(fù)數(shù)據(jù)存在
- 可以修改(增加或刪除元素等)
1.4 列表的遍歷
1.4.1 列表的遍歷 - while循環(huán)
def while_list(): list = [11, 12, 13] index = 0 while index < len(list): el = list[index] print(f'元素:{el}') index += 1 while_list()
1.4.2 列表的遍歷 - for循環(huán)
def for_list(): list = [1, 2, 3, 4, 5] for v in list: print(f'元素:{v}') for_list()
練習(xí)案例:取出列表內(nèi)的偶數(shù)
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] index = 0 new_list = [] while index < len(list): if list[index] % 2 == 0: new_list.append(list[index]) index += 1 for val in list: if val % 2 == 0: new_list.append(val) print(new_list)
二、數(shù)據(jù)容器:tuple(元組)
元組定義:定義元組使用小括號(hào),且使用逗號(hào)隔開(kāi)各個(gè)數(shù)據(jù),數(shù)據(jù)可以是不同的數(shù)據(jù)類(lèi)型。
元組一旦定義完成,就不可修改
元組由于不可修改的特性,所以其操作方法非常少。
元組也可以被遍歷,同列表一樣。
可以使用while循環(huán)和for循環(huán)遍歷它
方法 | 作用 |
---|---|
index() | 查找某個(gè)數(shù)據(jù),如果數(shù)據(jù)存在返回對(duì)應(yīng)的下標(biāo),否則報(bào)錯(cuò) |
count() | 統(tǒng)計(jì)某個(gè)數(shù)據(jù)在當(dāng)前元組出現(xiàn)的次數(shù) |
len(元組) | 統(tǒng)計(jì)元組內(nèi)的元素個(gè)數(shù) |
t1 = (1, 11) print(f'{t1}, type:{type(t1)}') num = t1.index(11)
元組的特點(diǎn):
- 可以容納多個(gè)數(shù)據(jù)
- 可以容納不同類(lèi)型的數(shù)據(jù)(混裝)
- 數(shù)據(jù)是有序存儲(chǔ)的(下標(biāo)索引)
- 允許重復(fù)數(shù)據(jù)存在
- 不可以修改(增加或刪除元素等)
- 支持for循環(huán)
三、數(shù)據(jù)容器:str(字符串)
3.1 字符串的下標(biāo)(索引)
和其它容器如:列表、元組一樣,字符串也可以通過(guò)下標(biāo)進(jìn)行訪問(wèn)
- 從前向后,下標(biāo)從0開(kāi)始
- 從后向前,下標(biāo)從-1開(kāi)始
同元組一樣,字符串是一個(gè):無(wú)法修改的數(shù)據(jù)容器。
所以:
- 修改指定下標(biāo)的字符 (如:字符串[0] = “a”)
- 移除特定下標(biāo)的字符 (如:del 字符串[0]、字符串.remove()、字符串.pop()等)
- 追加字符等 (如:字符串.append())
- 均無(wú)法完成。如果必須要做,只能得到一個(gè)新的字符串,舊的字符串是無(wú)法修改
3.2 字符串常用操作匯總
操作 | 說(shuō)明 |
---|---|
字符串[下標(biāo)] | 根據(jù)下標(biāo)索引取出特定位置字符 |
字符串.index(字符串) | 查找給定字符的第一個(gè)匹配項(xiàng)的下標(biāo) |
字符串.replace(字符串1, 字符串2) | 將字符串內(nèi)的全部字符串1,替換為字符串2 不會(huì)修改原字符串,而是得到一個(gè)新的 |
字符串.split(字符串) | 按照給定字符串,對(duì)字符串進(jìn)行分隔 <br/>不會(huì)修改原字符串,而是得到一個(gè)新的列表 |
字符串.strip()<br/> 字符串.strip(字符串) | 移除首尾的空格和換行符或指定字符串 |
字符串.count(字符串) | 統(tǒng)計(jì)字符串內(nèi)某字符串的出現(xiàn)次數(shù) |
len(字符串) | 統(tǒng)計(jì)字符串的字符個(gè)數(shù) |
3.3 字符串的遍歷
同列表、元組一樣,字符串也支持while循環(huán)和for循環(huán)進(jìn)行遍歷
str = '小小叮當(dāng)' index = 0 while index < len(str): print(str[index]) index += 1 for v in str: print(v)
3.4 字符串的特點(diǎn)
作為數(shù)據(jù)容器,字符串有如下特點(diǎn):
- 只可以存儲(chǔ)字符串
- 長(zhǎng)度任意(取決于內(nèi)存大小)
- 支持下標(biāo)索引
- 允許重復(fù)字符串存在
- 不可以修改(增加或刪除元素等)
- 支持for循環(huán)
四、數(shù)據(jù)容器(序列)的切片
序列支持切片,即:列表、元組、字符串,均支持進(jìn)行切片操作
切片:從一個(gè)序列中,取出一個(gè)子序列
語(yǔ)法:序列[起始下標(biāo):結(jié)束下標(biāo):步長(zhǎng)]
表示從序列中,從指定位置開(kāi)始,依次取出元素,到指定位置結(jié)束,得到一個(gè)新序列:
起始下標(biāo)表示從何處開(kāi)始,可以留空,留空視作從頭開(kāi)始
結(jié)束下標(biāo)(不含)表示何處結(jié)束,可以留空,留空視作截取到結(jié)尾
步長(zhǎng)表示,依次取元素的間隔
- 步長(zhǎng)1表示,一個(gè)個(gè)取元素
- 步長(zhǎng)2表示,每次跳過(guò)1個(gè)元素取
- 步長(zhǎng)N表示,每次跳過(guò)N-1個(gè)元素取
- 步長(zhǎng)為負(fù)數(shù)表示,反向取(注意,起始下標(biāo)和結(jié)束下標(biāo)也要反向標(biāo)記)
my_list = [1, 2, 3, 4, 5] print(my_list[1:4:2]) my_tuple = (0, 1, 2, 3, 4, 5, 6) print(my_tuple[0:6:2]) str = 'ay,呀當(dāng)叮小來(lái),nohtyP學(xué)' new_str = str[::-1] # print(new_str) list = new_str.split(',') print(list[1].replace('來(lái)', ''))
五、數(shù)據(jù)容器:set(集合)
集合的定義:
# 定義集合字面量
{元素,元素, ..., 元素}
# 定義集合變量
變量名稱(chēng) = {元素, 元素, ..., 元素}
# 定義空集合?
變量名稱(chēng) = set()
操作 | 說(shuō)明 |
---|---|
集合.add(元素) | 集合內(nèi)添加一個(gè)元素 |
集合.remove(元素) | 移除集合內(nèi)指定的元素 |
集合.pop() | 從集合中隨機(jī)取出一個(gè)元素 |
集合.clear() | 將集合清空 |
集合1.difference(集合2) | 得到一個(gè)新集合,內(nèi)含2個(gè)集合的差集 原有的2個(gè)集合內(nèi)容不變 |
集合1.difference_update(集合2) | 在集合1中,刪除集合2中存在的元素 集合1被修改,集合2不變 |
集合1.union(集合2) | 得到1個(gè)新集合,內(nèi)含2個(gè)集合的全部元素<br/> 原有的2個(gè)集合內(nèi)容不變 |
len(集合) | 得到一個(gè)整數(shù),記錄了集合的元素?cái)?shù)量 |
集合的特點(diǎn):
- 可以容納多個(gè)數(shù)據(jù)
- 可以容納不同類(lèi)型的數(shù)據(jù)(混裝)
- 數(shù)據(jù)是無(wú)序存儲(chǔ)的(不支持下標(biāo)索引)
- 不允許重復(fù)數(shù)據(jù)存在
- 可以修改(增加或刪除元素等)
- 支持for循環(huán)
例:
my_list = ['111', '222', '333', '111', '333', 'itit', 'hehe', 'itit'] new_set = set() for val in my_list: new_set.add(val) print(new_set)
六、數(shù)據(jù)容器:dict(字典、映射)
字典的定義:同樣使用{},不過(guò)存儲(chǔ)的元素是一個(gè)個(gè)的:鍵值對(duì)
注意:
- 使用{}存儲(chǔ)原始,每一個(gè)元素是一個(gè)鍵值對(duì)
- 每一個(gè)鍵值對(duì)包含Key和Value(用冒號(hào)分隔)
- 鍵值對(duì)之間使用逗號(hào)分隔
- Key和Value可以是任意類(lèi)型的數(shù)據(jù)(key不可為字典)
- Key不可重復(fù),重復(fù)會(huì)對(duì)原有數(shù)據(jù)覆蓋
提示:
- 鍵值對(duì)的Key和Value可以是任意類(lèi)型(Key不可為字典)
- 字典內(nèi)Key不允許重復(fù),重復(fù)添加等同于覆蓋原有數(shù)據(jù)
- 字典不可用下標(biāo)索引,而是通過(guò)Key檢索Value
dic = { '王': { '部門(mén)': '科技部', '工資': 3000, '級(jí)別': 1 }, '周': { '部門(mén)': '市場(chǎng)部', '工資': 5000, '級(jí)別': 2 }, '林': { '部門(mén)': '市場(chǎng)部', '工資': 7000, '級(jí)別': 3 }, '張': { '部門(mén)': '科技部', '工資': 4000, '級(jí)別': 1 }, } for key in dic: if dic[key]['級(jí)別'] == 1: dic[key]['級(jí)別'] += 1 dic[key]['工資'] += 1000 print(dic)
原文鏈接:https://segmentfault.com/a/1190000042858530
相關(guān)推薦
- 2022-08-03 goFrame的隊(duì)列g(shù)queue對(duì)比channel使用詳解_Golang
- 2022-07-19 Python數(shù)據(jù)分析之?Pandas?Dataframe應(yīng)用自定義_python
- 2023-11-20 python獲取當(dāng)前路徑所有文件
- 2022-05-25 Python學(xué)習(xí)之文件的創(chuàng)建與寫(xiě)入詳解_python
- 2022-11-09 React特征Form?單向數(shù)據(jù)流示例詳解_React
- 2023-07-07 TP6在composer包里寫(xiě)控制器
- 2023-06-17 C語(yǔ)言中帶返回值的宏定義方式_C 語(yǔ)言
- 2022-06-26 Android如何使用圓形揭露動(dòng)畫(huà)巧妙地隱藏或顯示View詳解_Android
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支