最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文搞懂Python中列表List和元組Tuple的使用

 更新時間:2022年04月27日 10:18:56   作者:Mr數(shù)據(jù)楊  
列表List 和 元組Tuple 可以說是 Python 中最通用、最有用的數(shù)據(jù)類型。列表是動態(tài)的,而元組具有靜態(tài)特征。本文將通過示例詳細(xì)講解二者的使用方法,需要的可以參考一下

列表 List

列表是任意對象的集合,在 Python 中通過逗號分隔的對象序列括在方括號 ( [] ) 中

people_list = ['曹操', '曹丕', '甄姫', '蔡文姫']

print(people_list)
['曹操', '曹丕', '甄姫', '蔡文姫']

people_list
['曹操', '曹丕', '甄姫', '蔡文姫']

列表是有序的

列表是對象的有序集合。定義列表時指定元素的順序是該列表的固有特征,并在該列表的生命周期內(nèi)保持不變

# 具有不同順序的相同元素的列表是不相同的。
list_ = ['曹操', '曹丕', '甄姫', '蔡文姫']
list_b = ['甄姫', '蔡文姫', '曹丕', '曹操']

list_ == list_b
False

list_ is list_b
False

列表可以包含任意對象

列表的元素都可以是同一類型

list_ = ['曹操', '曹丕', '甄姫', '甄姫']
list_
['曹操', '曹丕', '甄姫', '甄姫']

元素可以是不同的類型

list_ = [21.42, '曹操', 3, 4, '曹丕', False, 3.14159]
list_
[21.42, '曹操', 3, 4, '曹丕', False, 3.14159]

列表甚至可以包含復(fù)雜的對象(函數(shù)、類和模塊)

int
<class 'int'>

len
<built-in function len>

def Dynasty_Warriors():
	pass
Dynasty_Warriors
<function Dynasty_Warriors at 0x000002A96EAB1840>

import math
math
<module 'math' (built-in)>

list_ = [int, len, Dynasty_Warriors, math]
list_
[<class 'int'>, <built-in function len>, <function Dynasty_Warriors at 0x000002A96EAB1840>,<module 'math' (built-in)>]

列表對象不必是唯一的。給定對象可以多次出現(xiàn)在列表中

list_ = ['曹丕', '甄姫', '甄姫', '曹丕', '甄姫', '曹丕']
list_
['曹丕', '甄姫', '甄姫', '曹丕', '甄姫', '曹丕']

通過索引訪問列表元素

像字符串一樣列表索引可以使用方括號中的索引訪問列表中的各個元素

list_ = ['曹操', '曹丕', '甄姫', '蔡文姫']

list_[0],list_[2]
('曹操', '甄姫')

list_[-1],list_[-2]
('蔡文姫', '甄姫')

切片表達(dá)式 [m:n] 返回索引 m 到 n 包括索引 n 的元素。

list_ = ['曹操', '曹丕', '甄姫', '蔡文姫']
list_[2:4]
['甄姫', '蔡文姫']

字符串切片的其他特性也適用于列表切片

正索引和負(fù)索引

list_[-5:-2]
['曹操', '曹丕']

list_[0:2]
['曹操', '曹丕']

list_[-5:-2] == list_[0:2]
True

省略索引開頭和結(jié)束索引

print(list_[:2], list_[0:2])
['曹操', '曹丕']['曹操', '曹丕']

print(list_[2:], list_[2:len(a)])
['甄姫', '蔡文姫']['甄姫', '蔡文姫'] 

list_[:4] + list_[4:]
['曹操', '曹丕', '甄姫', '蔡文姫']

list_[:4] + list_[4:] == list_
True

指定步幅的正負(fù)索引

list_[0:4:2]
['曹操', '甄姫']

list_[1:4:2]
['曹丕', '蔡文姫']

list_[4:0:-2]
['蔡文姫', '曹丕']

反轉(zhuǎn)列表

list_[::-1]
['蔡文姫', '甄姫', '曹丕', '曹操']

運算符和內(nèi)置函數(shù)處理列表

運算符 in 和 not in

list_
['曹操', '曹丕', '甄姫', '蔡文姫']

'蔡文姫' in list_
True
'曹仁' not in list_
True

連接( + )和復(fù)制( * )運算符

list_ = ['曹操', '曹丕']

list_ + ['甄姫', '蔡文姫']
['曹操', '曹丕', '甄姫', '蔡文姫']
list_ * 2
['曹操', '曹丕', '甄姫', '蔡文姫' '曹操', '曹丕', '甄姫','蔡文姫']

函數(shù) len()、min()、max()

list_ = ['曹操', '曹丕', '甄姫', '蔡文姫']

len(a)
4

min(list_ )
'曹丕'

max(list_ )
'蔡文姫'

列表嵌套

列表中的元素可以是任何類型的對象,一個列表可以包含子列表,而子列表又可以包含子列表本身,依此類推。

常規(guī)嵌套列表操作

list_ = ['a', ['bb', ['ccc', 'ddd'], 'ee', 'ff'], 'g', ['hh', 'ii'], 'j']
['a', ['bb', ['ccc', 'ddd'], 'ee', 'ff'], 'g', ['hh', 'ii'], 'j']


# list_[0], list_[2], 和list_[4]是字符串
print(list_[0], list_[2], list_[4])
a g j

# list_[1]和list_[3]是子列表
list_[1]
['bb', ['ccc', 'ddd'], 'ee', 'ff']

list_[3]
['hh', 'ii']


# 訪問子列表中的元素需附加索引
list_[1]
['bb', ['ccc', 'ddd'], 'ee', 'ff']

list_[1][0]
'bb'

list_[1][1]
['ccc', 'ddd']

list_[1][2]
'ee'

list_[1][3]
'ff'

list_[3]
['hh', 'ii']

print(list_[3][0], list_[3][1])
hh ii


# list_[1][1]是另一個子列表,訪問需要添加索引
list_[1][1]
['ccc', 'ddd']
print(list_[1][1][0], list_[1][1][1])
ccc ddd


# 索引和切片的常用語法也適用于子列表。
list_[1][1][-1]
'ddd'

list_[1][1:3]
[['ccc', 'ddd'], 'ee']

list_[3][::-1]
['ii', 'hh']

# in 操作符使用。
'ddd' in x
False
'ddd' in x[1]
False
'ddd' in x[1][1]
True

列表可變

創(chuàng)建列表后,可以隨意添加、刪除、移動和移動元素。

修改單個列表值

列表中的值可以通過索引和簡單賦值進(jìn)行替換。

s = '曹操,曹丕,甄姫'
s[2] = '蔡文姫'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

使用 del 命令刪除列表項

list_ = ['曹操', '曹丕', '甄姫', '蔡文姫']

del list_[3]

list_
['曹操', '曹丕', '甄姫']

修改多個列表值

切片實現(xiàn) a[m:n] = <iterable> 序列迭代替換值

list_ = ['曹操', '曹丕', '甄姫', '蔡文姫']

list_[1:4]
['曹丕', '甄姫', '蔡文姫']

list_[1:4] = [1.1, 2.2, 3.3, 4.4, 5.5]

list_
['曹操', 1.1, 2.2, 3.3, 4.4, 5.5]

多個元素來代替單個元素

list_ = [1, 2, 3]

list_[1:2] = [2.1, 2.2, 2.3]
list_
[1, 2.1, 2.2, 2.3, 3]

list_ = [1, 2, 3]
list_[1] = [2.1, 2.2, 2.3]
list_
[1, [2.1, 2.2, 2.3], 3]

list_ = [1, 2, 7, 8]
list_[2:2] = [3, 4, 5, 6]
list_
[1, 2, 3, 4, 5, 6, 7, 8]

切片分配空列表刪除列表中間的多個元素

list_ = ['曹操', '曹丕', '甄姫', '蔡文姫']
list_[1:4] = []
list_
['曹操']

列表附加元素或元素附加到列表

list_ = ['曹操', '曹丕']

list_ += [ '甄姫', '蔡文姫']

list_
['曹操', '曹丕', '甄姫', '蔡文姫']

list_ = [10, 20] + list_
list_
[10, 20, '曹操', '曹丕', '甄姫', '蔡文姫']

列表拼接元素的方法不能直接添加

list_ = ['曹操', '曹丕', '甄姫', '蔡文姫']

list_ += 20
Traceback (most recent call last):
  File "<pyshell#58>", line 1, in <module>
    list_ += 20
TypeError: 'int' object is not iterable

list_ += [20]
list_
['曹操', '曹丕', '甄姫', '蔡文姫', 20]

append(<obj>) 將對象附加到列表中

list_ = ['曹操', '曹丕']

list_.append(123)
list_
['曹操', '曹丕', 123]

x = list_.append(123)
print(x)
None

list.extend(<iterable>),追加元素

list_ = ['曹操', '曹丕']

list_.extend([1, 2, 3])
list_
['曹操', '曹丕', 1, 2, 3]

list.insert(<index>, <obj>),插入元素

將對象插入列表

list_ = ['曹操', '曹丕', '甄姫', '蔡文姫']
list_.insert(3, 3.14159)

list_[3]
3.14159

list_
['曹操', '曹丕', '甄姫', 3.14159, '蔡文姫']

list.remove(<obj>),按照元素刪除元素

list_ = ['曹操', '曹丕', '甄姫', '蔡文姫']
list_.remove('甄姫')
list_
['曹操', '曹丕', '蔡文姫']

# 如果<obj>不在中列表,則會引發(fā)異常。
list_.remove('曹丕k')
Traceback (most recent call last):
  File "<pyshell#13>", line 1, in <module>
    list_.remove('曹丕k')
ValueError: list.remove(x): x not in list

list.pop(index=-1),按索引刪除元素

從列表中刪除一個元素,需要指定索引并返回被移除的項目的值,pop(-1) 等價于 pop()

list_ = ['曹操', '曹丕', '甄姫', '蔡文姫']

list_.pop()
'蔡文姫'

list_
['曹操', '曹丕', '甄姫']

list_.pop()
'甄姫'

list_
['曹操', '曹丕']

列表是動態(tài)的,隨著項目數(shù)據(jù)的變化而變化

list_ = ['曹操', '曹丕', '甄姫', '蔡文姫']
# 數(shù)據(jù)增加
list_ [2:2] = [1, 2, 3]
list_  += [3.14159]
list_ 
['曹操', '曹丕', 1, 2, 3, '甄姫', '蔡文姫', 3.14159]

# 數(shù)據(jù)刪除
a = ['曹操', '曹丕', '甄姫', '蔡文姫']
a[2:3] = []
del a[0]
a
['曹丕', '蔡文姫']

元組 Tuple

對象的有序集合,稱為元組。與列表的區(qū)別在于元組是通過括號 ( () ) 而不是方括號 ( [] ) 中來定義的,以及元素不可變。

定義和使用元組

t = ('曹操', '曹丕', '甄姫', '蔡文姫')

t
('曹操', '曹丕', '甄姫', '蔡文姫')

t[0]
'曹操'

t[-1]
'蔡文姫'

t[1::2]
('曹丕', '蔡文姫')


# 可以進(jìn)行倒序排列
t[::-1]
('蔡文姫', '甄姫', '曹丕', '曹操')


# 元組不可修改
t = ('曹操', '曹丕', '甄姫', '蔡文姫')
t[2] = '曹丕k'
Traceback (most recent call last):
  File "<pyshell#65>", line 1, in <module>
    t[2] = '曹丕k'
TypeError: 'tuple' object does not support item assignment

元素對比列表的優(yōu)點

  • 處理速度更快
  • 防止被意外修改
  • 字典需要不可變更類型的值作為組件
# 元素用,分割
a = '曹操'
b = 42
a, 3.14159, b
('曹操', 3.14159, 42)


# 定義一個空的元組
t = ()
type(t)
<class 'tuple'>


# 定義項目的元組
t = (2,)

type(t)
<class 'tuple'>

t[0]
2

t[-1]
2

# 元組單一元素會包含符號
print(t)
(2,)

元組分配、打包和解包

可以將包含多個項目的文字元組分配給單個對象。

t
('曹操', '曹丕', '甄姫', '蔡文姫')

t[0]
'曹操'

t[-1]
'蔡文姫'

被打包的對象直接被分配新的元組中,并解釋到各個元組對象。

(s1, s2, s3, s4) = t

s1
'曹操'

s2
'曹丕'

s3
'甄姫'

s4
'蔡文姫'

解包時,左邊的變量個數(shù)必須與元組中的值個數(shù)相匹配

(s1, s2, s3) = t
Traceback (most recent call last):
  File "<pyshell#16>", line 1, in <module>
    (s1, s2, s3) = t
ValueError: too many values to unpack (expected 3)

(s1, s2, s3, s4, s5) = t
Traceback (most recent call last):
  File "<pyshell#17>", line 1, in <module>
    (s1, s2, s3, s4, s5) = t
ValueError: not enough values to unpack (expected 5, got 4)

打包、解包一步操作

(s1, s2, s3, s4) = ('曹操', '曹丕', '甄姫', '蔡文姫')

s1, s2, s3, s4 = '曹操', '曹丕', '甄姫', '蔡文姫'

s1
'曹操'
s2
'曹丕'
s3
'甄姫'
s4
'蔡文姫'

元組互換進(jìn)行互換賦值

a = '曹操'
b = '曹丕'

a, b
('曹操', '曹丕')

a, b = b, a
a, b
('曹丕', '曹操')

List 與 Tuple 的區(qū)別

功能說明列表元組
元素操作可變不可變
迭代耗時耗時多相對較快
操作修改執(zhí)行插入、刪除、追加操作僅限訪問元素
內(nèi)存消耗消耗內(nèi)存多消耗內(nèi)存少
內(nèi)置方法內(nèi)置方法多內(nèi)置方法少
容錯概率易發(fā)生變化和錯誤難發(fā)生

到此這篇關(guān)于一文搞懂Python中列表List和元組Tuple的使用的文章就介紹到這了,更多相關(guān)Python列表 元組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python 將有序數(shù)組轉(zhuǎn)換為二叉樹的方法

    python 將有序數(shù)組轉(zhuǎn)換為二叉樹的方法

    這篇文章主要介紹了python 將有序數(shù)組轉(zhuǎn)換為二叉樹的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • python管理工具之conda安裝部署及使用詳解

    python管理工具之conda安裝部署及使用詳解

    這篇文章詳細(xì)介紹了如何安裝和使用conda來管理Python環(huán)境,它涵蓋了從安裝部署、鏡像源配置到具體的conda使用方法,包括創(chuàng)建、激活、安裝包、切換、刪除環(huán)境,以及導(dǎo)出和導(dǎo)入環(huán)境等操作,感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • Python虛擬環(huán)境venv的使用方法

    Python虛擬環(huán)境venv的使用方法

    venv 是 Python 里的一個標(biāo)準(zhǔn)工具,它的主要功能是幫助用戶管理和控制虛擬環(huán)境,venv 的使用方法其實非常簡單,下面我將詳細(xì)介紹如何創(chuàng)建虛擬環(huán)境,如何激活虛擬環(huán)境,以及如何退出虛擬環(huán)境的操作步驟,需要的朋友可以參考下
    2024-03-03
  • Pygame Display顯示模塊的使用方法

    Pygame Display顯示模塊的使用方法

    本文主要介紹了Pygame Display顯示模塊的使用方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 用Python shell簡化開發(fā)

    用Python shell簡化開發(fā)

    這篇文章給大家詳細(xì)分享了在Python的開發(fā)中,如何通過Python shell簡化開發(fā),有興趣的朋友們可以學(xué)習(xí)下。
    2018-08-08
  • 解決pytorch-gpu 安裝失敗的記錄

    解決pytorch-gpu 安裝失敗的記錄

    這篇文章主要介紹了解決pytorch-gpu 安裝失敗的記錄,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python用棧實現(xiàn)隊列的基本操作

    Python用棧實現(xiàn)隊列的基本操作

    隊列(Queue)和棧(Stack)是常見的數(shù)據(jù)結(jié)構(gòu),它們在計算機(jī)科學(xué)中有著廣泛的應(yīng)用,在Python中,可以使用列表(List)來實現(xiàn)棧,但要用棧來實現(xiàn)隊列需要一些巧妙的操作,本文就給大家詳細(xì)介紹一下Python中如何用棧實現(xiàn)隊列,需要的朋友可以參考下
    2023-11-11
  • Python numpy 模塊介紹

    Python numpy 模塊介紹

    這篇文章主要介紹了Python numpy 模塊,在motplotlib的學(xué)習(xí)過程中,我們使用最多的就是numpy模塊。下面我們將使用numpy進(jìn)行創(chuàng)建數(shù)組、切片、索引、廣播等功能實操,需要的朋友可以參考一下
    2022-01-01
  • 使用Python實現(xiàn)U盤數(shù)據(jù)自動拷貝

    使用Python實現(xiàn)U盤數(shù)據(jù)自動拷貝

    這篇文章主要為大家詳細(xì)介紹了如何使用Python實現(xiàn)U盤數(shù)據(jù)自動拷貝,即當(dāng)電腦上有U盤插入時自動復(fù)制U盤內(nèi)的所有內(nèi)容,希望對大家有所幫助
    2025-02-02
  • Python實現(xiàn)遍歷windows所有窗口并輸出窗口標(biāo)題的方法

    Python實現(xiàn)遍歷windows所有窗口并輸出窗口標(biāo)題的方法

    這篇文章主要介紹了Python實現(xiàn)遍歷windows所有窗口并輸出窗口標(biāo)題的方法,涉及Python調(diào)用及遍歷windows窗口句柄的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03

最新評論

安达市| 溧水县| 固安县| 辛集市| 大冶市| 西宁市| 白山市| 远安县| 安岳县| 崇信县| 安仁县| 云南省| 宜兰市| 大丰市| 淳安县| 集安市| 麦盖提县| 大悟县| 宜章县| 长春市| 扎赉特旗| 龙江县| 北安市| 三原县| 大邑县| 宁海县| 和静县| 浠水县| 湘西| 通山县| 黑河市| 祁东县| 鄂托克前旗| 城固县| 上高县| 东港市| 巨野县| 和龙市| 图木舒克市| 施甸县| 徐州市|