欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一文帶你搞懂Python中的數(shù)據(jù)容器

 更新時(shí)間:2022年11月25日 14:23:59   作者:玲小叮當(dāng)  
這篇文章主要為大家詳細(xì)介紹了Python中數(shù)據(jù)容器的相關(guān)資料,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定的幫助,感興趣的可以了解一下

一、數(shù)據(jù)容器:list(列表)

列表內(nèi)的每一個(gè)數(shù)據(jù),稱之為元素

  • 以 [] 作為標(biāo)識(shí)
  • 列表內(nèi)每一個(gè)元素之間用, 逗號(hào)隔開

定義語法:

[元素1, 元素2, 元素3, ......]

例:

list = ['iii', 666, '你好']

1.1 list取出元素

列表中的每一個(gè)元素,都有其位置下標(biāo)索引,從前向后的方向,從0開始,依次遞增或者遞減

語法:列表[下標(biāo)],即可取出

1.2 列表的常用操作(方法)

1.2.1 列表的查詢功能(方法)

功能:查找指定元素在列表的下標(biāo),如果找不到,報(bào)錯(cuò)ValueError

語法:列表.index(元素)

1.2.2 列表的修改功能(方法)

修改特定位置(索引)的元素值:

語法:列表[下標(biāo)] = 值

可以使用如上語法,直接對(duì)指定下標(biāo)(正向、反向下標(biāo)均可)的值進(jìn)行:重新賦值(修改)

插入元素:

語法:列表.insert(下標(biāo), 元素),在指定的下標(biāo)位置,插入指定的元素

追加元素:

語法:列表.append(元素),將指定元素,追加到列表的尾部

追加元素方式2:

語法:列表.extend(其它數(shù)據(jù)容器),將其它數(shù)據(jù)容器的內(nèi)容取出,依次追加到列表尾部

刪除元素:

  • 語法1:del 列表[下標(biāo)]
  • 語法2:列表.pop(下標(biāo))

刪除某元素在列表中的第一個(gè)匹配項(xiàng):

語法:列表.remove(元素)

清空列表內(nèi)容:

語法:列表.clear()

統(tǒng)計(jì)某元素在列表內(nèi)的數(shù)量

語法:列表.count(元素)

1.2.3 列表的查詢功能(方法)

統(tǒng)計(jì)列表內(nèi),有多少元素

語法: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è))
  • 可以容納不同類型的元素(混裝)
  • 數(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)隔開各個(gè)數(shù)據(jù),數(shù)據(jù)可以是不同的數(shù)據(jù)類型。

元組一旦定義完成,就不可修改

元組由于不可修改的特性,所以其操作方法非常少。

元組也可以被遍歷,同列表一樣。

可以使用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ù)
  • 可以容納不同類型的數(shù)據(jù)(混裝)
  • 數(shù)據(jù)是有序存儲(chǔ)的(下標(biāo)索引)
  • 允許重復(fù)數(shù)據(jù)存在
  • 不可以修改(增加或刪除元素等)
  • 支持for循環(huán)

三、數(shù)據(jù)容器:str(字符串)

3.1 字符串的下標(biāo)(索引)

和其它容器如:列表、元組一樣,字符串也可以通過下標(biāo)進(jìn)行訪問

  • 從前向后,下標(biāo)從0開始
  • 從后向前,下標(biāo)從-1開始

同元組一樣,字符串是一個(gè):無法修改的數(shù)據(jù)容器。

所以:

  • 修改指定下標(biāo)的字符 (如:字符串[0] = “a”)
  • 移除特定下標(biāo)的字符 (如:del 字符串[0]、字符串.remove()、字符串.pop()等)
  • 追加字符等 (如:字符串.append())
  • 均無法完成。如果必須要做,只能得到一個(gè)新的字符串,舊的字符串是無法修改

3.2 字符串常用操作匯總

操作說明
字符串[下標(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)存大?。?/li>
  • 支持下標(biāo)索引
  • 允許重復(fù)字符串存在
  • 不可以修改(增加或刪除元素等)
  • 支持for循環(huán)

四、數(shù)據(jù)容器(序列)的切片

序列支持切片,即:列表、元組、字符串,均支持進(jìn)行切片操作
切片:從一個(gè)序列中,取出一個(gè)子序列

語法:序列[起始下標(biāo):結(jié)束下標(biāo):步長(zhǎng)]

表示從序列中,從指定位置開始,依次取出元素,到指定位置結(jié)束,得到一個(gè)新序列:

起始下標(biāo)表示從何處開始,可以留空,留空視作從頭開始

結(jié)束下標(biāo)(不含)表示何處結(jié)束,可以留空,留空視作截取到結(jié)尾

步長(zhǎng)表示,依次取元素的間隔

  • 步長(zhǎng)1表示,一個(gè)個(gè)取元素
  • 步長(zhǎng)2表示,每次跳過1個(gè)元素取
  • 步長(zhǎng)N表示,每次跳過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)叮小來,nohtyP學(xué)'
new_str = str[::-1]
# print(new_str)
list = new_str.split(',')
print(list[1].replace('來', ''))

五、數(shù)據(jù)容器:set(集合)

集合的定義:

# 定義集合字面量
{元素,元素, ..., 元素}
# 定義集合變量
變量名稱 = {元素, 元素, ..., 元素}
# 定義空集合 
變量名稱 = set()

操作說明
集合.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ù)
  • 可以容納不同類型的數(shù)據(jù)(混裝)
  • 數(shù)據(jù)是無序存儲(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(字典、映射)

字典的定義:同樣使用{},不過存儲(chǔ)的元素是一個(gè)個(gè)的:鍵值對(duì)

注意:

  • 使用{}存儲(chǔ)原始,每一個(gè)元素是一個(gè)鍵值對(duì)
  • 每一個(gè)鍵值對(duì)包含Key和Value(用冒號(hào)分隔)
  • 鍵值對(duì)之間使用逗號(hào)分隔
  • Key和Value可以是任意類型的數(shù)據(jù)(key不可為字典)
  • Key不可重復(fù),重復(fù)會(huì)對(duì)原有數(shù)據(jù)覆蓋

提示:

  • 鍵值對(duì)的Key和Value可以是任意類型(Key不可為字典)
  • 字典內(nèi)Key不允許重復(fù),重復(fù)添加等同于覆蓋原有數(shù)據(jù)
  • 字典不可用下標(biāo)索引,而是通過Key檢索Value
dic = {
    '王': {
        '部門': '科技部',
        '工資': 3000,
        '級(jí)別': 1
    },
    '周': {
        '部門': '市場(chǎng)部',
        '工資': 5000,
        '級(jí)別': 2
    },
    '林': {
        '部門': '市場(chǎng)部',
        '工資': 7000,
        '級(jí)別': 3
    },
    '張': {
        '部門': '科技部',
        '工資': 4000,
        '級(jí)別': 1
    },
}

for key in dic:
    if dic[key]['級(jí)別'] == 1:
        dic[key]['級(jí)別'] += 1
        dic[key]['工資'] += 1000

print(dic)

到此這篇關(guān)于一文帶你搞懂Python中的數(shù)據(jù)容器的文章就介紹到這了,更多相關(guān)Python數(shù)據(jù)容器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python迭代用法實(shí)例教程

    Python迭代用法實(shí)例教程

    這篇文章主要介紹了Python迭代用法,包括了迭代的定義及具體用法,是一個(gè)非常實(shí)用的技巧,需要的朋友可以參考下
    2014-09-09
  • Python scipy實(shí)現(xiàn)差分進(jìn)化算法

    Python scipy實(shí)現(xiàn)差分進(jìn)化算法

    差分進(jìn)化算法是廣義的遺傳算法的一種,核心思想是變異,這篇文章主要為大家介紹的則是著名的scipy庫中對(duì)差分進(jìn)化算法的實(shí)現(xiàn),希望對(duì)大家有所幫助
    2023-08-08
  • python HTTPX庫實(shí)現(xiàn)同步異步請(qǐng)求用法示例

    python HTTPX庫實(shí)現(xiàn)同步異步請(qǐng)求用法示例

    這篇文章主要為大家介紹了python HTTPX庫實(shí)現(xiàn)同步異步請(qǐng)求用法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Python基于csv模塊實(shí)現(xiàn)讀取與寫入csv數(shù)據(jù)的方法

    Python基于csv模塊實(shí)現(xiàn)讀取與寫入csv數(shù)據(jù)的方法

    這篇文章主要介紹了Python基于csv模塊實(shí)現(xiàn)讀取與寫入csv數(shù)據(jù)的方法,結(jié)合實(shí)例形式分析了Python使用csv模塊針對(duì)csv文件的讀取與寫入相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • Django配置文件代碼說明

    Django配置文件代碼說明

    在本篇文章里小編給大家整理了關(guān)于Django配置文件代碼說明知識(shí)點(diǎn),有需要的朋友們學(xué)習(xí)下。
    2019-12-12
  • Python多線程、異步+多進(jìn)程爬蟲實(shí)現(xiàn)代碼

    Python多線程、異步+多進(jìn)程爬蟲實(shí)現(xiàn)代碼

    這篇文章主要介紹了Python多線程、異步+多進(jìn)程爬蟲實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2016-02-02
  • Python中Matplotlib的簡(jiǎn)單使用

    Python中Matplotlib的簡(jiǎn)單使用

    這篇文章主要介紹了Python中Matplotlib的簡(jiǎn)單使用,Matplotlib是一個(gè)用于繪制數(shù)據(jù)可視化圖形的Python庫,支持繪制各種靜態(tài),動(dòng)態(tài),交互式的圖表,它是數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)領(lǐng)域最流行的可視化庫之一,需要的朋友可以參考下
    2023-07-07
  • python3 使用openpyxl將mysql數(shù)據(jù)寫入xlsx的操作

    python3 使用openpyxl將mysql數(shù)據(jù)寫入xlsx的操作

    這篇文章主要介紹了python3 使用openpyxl將mysql數(shù)據(jù)寫入xlsx的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • python神經(jīng)網(wǎng)絡(luò)特征金字塔FPN原理

    python神經(jīng)網(wǎng)絡(luò)特征金字塔FPN原理

    這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)特征金字塔FPN原理的解釋,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • python3調(diào)用windows dos命令的例子

    python3調(diào)用windows dos命令的例子

    今天小編就為大家分享一篇python3調(diào)用windows dos命令的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08

最新評(píng)論