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

深入了解python列表(LIST)

 更新時間:2020年06月08日 16:37:46   作者:zzzzy09  
這篇文章主要介紹了python列表(LIST)的相關(guān)知識,文中代碼非常詳細,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下

Python 內(nèi)置的四種常用數(shù)據(jù)結(jié)構(gòu):列表(list)、元組(tuple)、字典(dict)以及集合(set)。

這四種數(shù)據(jù)結(jié)構(gòu)一但都可用于保存多個數(shù)據(jù)項,這對于編程而言是非常重要的,因為程序不僅需要使用單個變量來保存數(shù)據(jù),還需要使用多種數(shù)據(jù)結(jié)構(gòu)來保存大量數(shù)據(jù),而列表、元組、字典和集合就可滿足保存大量數(shù)據(jù)的需求。

列表(list)和元組(tuple)比較相似,它們都按順序保存元素,每個元素都有自己的索引,因此列表和元組都可通過索引訪問元素。二者的區(qū)別在于元組是不可修改的,但列表是可修改的。

字典(dict)和集合(set)類似,它們存儲的數(shù)據(jù)都是無序的,其中字典是用 key-value 的形式保存數(shù)據(jù)

python 序列詳解

所謂序列,指的是一塊可存放多個值的連續(xù)內(nèi)存空間,這些值按一定順序排列,可通過每個值所在位置的編號(稱為索引)訪問它們。

無論是采用正索引值,還是負索引值,都可以訪問序列中的任何元素。

注意,在使用負值作為列序中各元素的索引值時,是從 -1 開始,而不是從 0 開始。

[root@kube list]# cat demo1.py 
str="Py序列化詳解"
print(str[0],"---",str[-6])
print(str[5],"---",str[-1])
[root@kube list]# py demo1.py 
P --- y
詳 --- 解
[root@kube list]#

序列切片

切片操作是訪問序列中元素的另一種方法,它可以訪問一定范圍內(nèi)的元素,通過切片操作,可以生成一個新的序列。

序列實現(xiàn)切片操作的語法格式如下:

sname[start : end : step]

其中,各個參數(shù)的含義分別是:

sname:表示序列的名稱;

start:表示切片的開始索引位置(包括該位置),此參數(shù)也可以不指定,會默認為 0,也就是從序列的開頭進行切片;

end:表示切片的結(jié)束索引位置(不包括該位置),如果不指定,則默認為序列的長度;

step:表示在切片過程中,隔幾個存儲位置(包含當前位置)取一次元素,也就是說,如果 step 的值大于 1,則在進行切片去序列元素時,會“跳躍式”的取元素。如果省略設(shè)置 step 的值,則最后一個冒號就可以省略。

[root@kube list]# cat demo2.py
str="py序列切片"
print(str[:0])    #end 為0 表示結(jié)束索引位置但是不包括該位置,因此為空 
print(str[:1])
print(str[:2])
print(str[1:2])
num="123456789"
print(num[1:5:2])    #在1-5 的區(qū)間中隔兩位取一個值
[root@kube list]# py demo2.py 

p
py
y
24
[root@kube list]#

序列相加

Python 中,支持兩種類型相同的序列使用“+”運算符做相加操作,它會將兩個序列進行連接,但不會去除重復(fù)的元素。

里所說的“類型相同”,指的是“+”運算符的兩側(cè)序列要么都是序列類型,要么都是元組類型,要么都是字符串。

root@kube list]# cat demo3.py 
print("你好"+"我好"+"dajiahao")
[root@kube list]# py demo3.py 
你好我好dajiahao
[root@kube list]# 

序列相乘

Python 中,使用數(shù)字 n 乘以一個序列會生成新的序列,其內(nèi)容為原來序列被重復(fù) n 次的結(jié)果

[root@kube list]# cat demo3.py 
str="你好"+"我好"+"dajiahao"
print(str*3)
[root@kube list]# py demo3.py 
你好我好dajiahao你好我好dajiahao你好我好dajiahao
[root@kube list]# 

檢查元素是否包含在序列中

Python 中,可以使用 in 關(guān)鍵字檢查某元素是否為序列的成員,其語法格式為:

value in sequence

和 in 關(guān)鍵字用法相同,但功能恰好相反的,還有 not in 關(guān)鍵字,它用法檢查某個元素是否不包含在指定的序列中

value not in sequence
[root@kube list]# cat demo4.py 
#coding:utf-8

str="test.com.cn"
print('e' in str)
print('e' not in str)
[root@kube list]# py demo4.py 
True
False
[root@kube list]#

和序列相關(guān)的內(nèi)置函數(shù)

Python提供了幾個內(nèi)置函數(shù)(表 3 所示),可用于實現(xiàn)與序列相關(guān)的一些常用操作

表 3 序列相關(guān)的內(nèi)置函數(shù)

函數(shù) 功能
len() 計算序列的長度,即返回序列中包含多少個元素。
max() 找出序列中的最大元素。注意,對序列使用 sum() 函數(shù)時,做加和操作的必須都是數(shù)字,不能是字符或字符串,否則該函數(shù)將拋出異常,因為解釋器無法判定是要做連接操作(+ 運算符可以連接兩個序列),還是做加和操作。
min() 找出序列中的最小元素。
list() 將序列轉(zhuǎn)換為列表
str() 將序列轉(zhuǎn)換為字符串。
sum() 計算元素和。
sorted() 對元素進行排序。
reversed() 反向序列中的元素。
enumerate() 將序列組合為一個索引序列,多用在for循環(huán)中。
[root@kube list]# cat demo5.py 
str="test.com.cn"
print(max(str))
print(min(str))
print(len(str))
print(list(str))
[root@kube list]# py demo5.py 
t
.
11
['t', 'e', 's', 't', '.', 'c', 'o', 'm', '.', 'c', 'n']
[root@kube list]#

python list 列表

Python 中沒有數(shù)組,但是加入了更加強大的列表。如果把數(shù)組看做是一個集裝箱,那么 Python 的列表就是一個工廠的倉庫。

 從形式上看,列表會將所有元素都放在一對中括號 [] 中,相鄰元素之間用逗號分隔,格式中,element1~elementn 表示列表中的元素,個數(shù)沒有限制,只要是 Python 支持的數(shù)據(jù)類型就可以。如下所示

[element1,element2,element3,...,elementn]
[root@kube list]# cat demo6.py
lt=['c.test.com',1,[2,3],2.34,'aa']
print(lt)
print(type(lt))
[root@kube list]# py demo6.py 
['c.test.com', 1, [2, 3], 2.34, 'aa']
<class 'list'>
[root@kube list]#

創(chuàng)建列表

[root@kube list]# cat demo7.py
lt=[1,'x.test.com',[2,3]]    # = 號賦值使用 [] 括起來
str="1234test"
print(type(lt))
print(type(str))
lt2=list(str)       #使用 list() 函數(shù)轉(zhuǎn)換
print(lt2)
print(type(lt2))
[root@kube list]# py demo7.py 
<class 'list'>
<class 'str'>
['1', '2', '3', '4', 't', 'e', 's', 't']
<class 'list'>
[root@kube list]#

python  訪問和刪除列表

[root@kube list]# cat demo8.py
vol=[1,'test.com',[3,4,5],44,'fff','ee']
print(vol[:1])
print(vol[:2])
print(vol[2:4])
del vol
print(vol)
[root@kube list]# py demo8.py 
[1]
[1, 'test.com']
[[3, 4, 5], 44]
Traceback (most recent call last):
 File "demo8.py", line 6, in <module>
 print(vol)
NameError: name 'vol' is not defined
[root@kube list]#

python list 列表添加元素的三種方法

append() 方法用于在列表的末尾追加元素,該方法的語法格式如下:

listname.append(obj)

當然,如果希望不將被追加的列表或元組當成一個整體,而是只追加列表中的元素,則可使用列表提供的 extend() 方法。extend()方法的語法格式如下:

listname.extend(obj)

如果希望在列表中間增加元素,則可使用列表的 insert() 方法,此方法的語法格式為:

listname.insert(index , obj)

其中,index 參數(shù)指的是將元素插入到列表中指定位置處的索引值。

使用 insert() 方法向列表中插入元素,和 append() 方法一樣,無論插入的對象是列表還是元組,都只會將其整體視為一個元素。

[root@kube list]# cat demo9.py
a_list=['test.com.cn',2,[2,'a']]
a_list.append('b')
print(a_list)
a_list.extend([9,8,7])
print(a_list)
a_list.insert(4,'MM')
print(a_list)
[root@kube list]# py demo9.py 
['test.com.cn', 2, [2, 'a'], 'b']
['test.com.cn', 2, [2, 'a'], 'b', 9, 8, 7]
['test.com.cn', 2, [2, 'a'], 'b', 'MM', 9, 8, 7]
[root@kube list]#

python list 列表刪除元素的三種方法

在列表中刪除元素,主要分為以下 3 種應(yīng)用場景:

1  根據(jù)目標元素所在位置的索引值進行刪除,可使用 del 語句;

2  根據(jù)元素的值進行刪除,可使用列表(list類型)提供的 remove() 方法;

3  將列表中所有元素全部刪除,可使用列表(list類型)提供的 clear() 方法。

python list 修改元素

列表的元素相當于變量,因此程序可以對列表的元素賦值,這樣即可修改列表的元素

slice 分片同樣可以使用

[root@kube list]# cat demo11.py 
a_list=list(range(0,10))  #list() 函數(shù)轉(zhuǎn)換為列表
print(a_list)
a_list[2]='a'     #替換序列為2 的值
print(a_list)
a_list[-1]='ffff'    #替換序列為-1 的值
print(a_list)
a_list[3:4]=['s','d']   #替換分片3-4 的值
print(a_list)
a_list[4:6]=[]     #把 4-6 的值替換為空
print(a_list)
a_list[1:3]='test'    #對列表使用 slice 語法賦值時,不能使用單個值;如果使用字符串賦值,Python 會自動把字符串當成序列處理,其中每個字符都是一個元素。
print(a_list)
a_list[2:6:2]=['MM','NN']  #在使用 slice 語法賦值時,也可指定 step 參數(shù)。但如果指定了 step 參數(shù),則要求所賦值的列表元素個數(shù)與所替換的列表元素個數(shù)相等
print(a_list)
[root@kube list]# py demo11.py 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 'a', 3, 4, 5, 6, 7, 8, 9]
[0, 1, 'a', 3, 4, 5, 6, 7, 8, 'ffff']
[0, 1, 'a', 's', 'd', 4, 5, 6, 7, 8, 'ffff']
[0, 1, 'a', 's', 5, 6, 7, 8, 'ffff']
[0, 't', 'e', 's', 't', 's', 5, 6, 7, 8, 'ffff']
[0, 't', 'MM', 's', 'NN', 's', 5, 6, 7, 8, 'ffff']
[root@kube list]#

python list 常用方法

除前面的增加元素、刪除元素、修改元素方法之外,列表還包含了一些常用的方法。

count() 方法,此方法用于統(tǒng)計列表中某個元素出現(xiàn)的次數(shù)

listname.count(obj)

index() 方法用于定位某個元素在列表中出現(xiàn)的位置(也就是索引),如果該元素沒有出現(xiàn),則會引發(fā) ValueError 錯誤。此方法的基本語法格式為

listname.index(obj,start,end)

同 count() 方法不同,index() 方法還可傳入 start、end 參數(shù),用于在列表的指定范圍內(nèi)搜索元素。

pop() 方法會移除列表中指定索引處的元素,如果不指定,默認會移除列表中最后一個元素。該方法的基本語法格式為:

listname.pop(index)

reverse() 方法會將列表中所有元素反向存放。該方法的基本語法格式為:

listname.reverse()

sort() 方法用于對列表元素進行排序,排序后原列表中的元素順序會方發(fā)生改變。sort() 方法的語法格式如下:

listname.sort(key=None, reserse=False)

可以看到,和其他方法不同,此方法中多了 2 個參數(shù),它們的作用分別是:

key 參數(shù)用于指定從每個元素中提取一個用于比較的鍵。例如,使用此方法時設(shè)置 key=str.lower 表示在排序時不區(qū)分字母大小寫。

reverse 參數(shù)用于設(shè)置是否需要反轉(zhuǎn)排序,默認 False 表示從小到大排序;如果將該參數(shù)設(shè)為 True,將會改為從大到小排序。

下面代碼示范了使用列表作為“?!钡氖纠?/p>

stack = []
# 向棧中“入?!?個元素
stack.append("fkit")
stack.append("crazyit")
stack.append("Charlie")
print(stack) # ['fkit', 'crazyit', 'Charlie']
# 第一次出棧:最后入棧的元素被移出棧
print(stack.pop())
print(stack) # ['fkit', 'crazyit']
# 再次出棧
print(stack.pop())
print(stack) # ['fkit']

python range 快速初始化數(shù)字列表

ython range() 函數(shù)能夠輕松地生成一系列的數(shù)字。例如,可以像如下這樣使用 range() 來打印一系列數(shù)字:

[root@kube list]# cat demo14.py 
#coding:utf-8
seq=[]
for i in range(1,4): #求1-3 的乘積
 vol=i**2
 seq.append(vol)
print(seq)

print('----------------------------')
print(type([1,2,3,4]))  #range 的type 類型的轉(zhuǎn)化
print(type(range(1,5)))
[root@kube list]# py demo14.py 
[1, 4, 9]
----------------------------
<class 'list'>
<class 'range'>
[root@kube list]#

python list 列表實現(xiàn)棧和隊列

隊列和棧是兩種數(shù)據(jù)結(jié)構(gòu),其內(nèi)部都是按照固定順序來存放變量的,二者的區(qū)別在于對數(shù)據(jù)的存取順序:

隊列是,先存入的數(shù)據(jù)最先取出,即“先進先出”。

棧是,最后存入的數(shù)據(jù)最先取出,即“后進先出”。

考慮到 list 類型數(shù)據(jù)本身的存放就是有順序的,而且內(nèi)部元素又可以是各不相同的類型,非常適合用于隊列和棧的實現(xiàn)。本節(jié)將演示如何使用 list 類型變量來實現(xiàn)隊列和棧。

python list 列表實現(xiàn)

使用 list 列表模擬隊列功能的實現(xiàn)方法是,定義一個 list 變量,存入數(shù)據(jù)時使用 insert() 方法,設(shè)置其第一個參數(shù)為 0,即表示每次都從最前面插入數(shù)據(jù);讀取數(shù)據(jù)時,使用 pop() 方法,即將隊列的最后一個元素彈出。

[root@kube list]# cat demo15.py 
#coding:utf-8

#定義一個空列表,當做隊列
queue = []
#向列表中插入元素
queue.insert(0,"one")
queue.insert(0,"two")
queue.insert(0,"three")
print(queue)
print('取第一個元素:',queue.pop())  #pop() 默認取隊列最后一位
print('取第二個元素:',queue.pop())
print('取第三個元素:',queue.pop())

[root@kube list]# py demo15.py 
['three', 'two', 'one']
取第一個元素: one
取第二個元素: two
取第三個元素: three
[root@kube list]#

python  實現(xiàn)棧

使用 list 列表模擬棧功能的實現(xiàn)方法是,使用 append() 方法存入數(shù)據(jù);使用 pop() 方法讀取數(shù)據(jù)。append() 方法向 list 中存入數(shù)據(jù)時,每次都在最后面添加數(shù)據(jù),這和前面程序中的 insert() 方法正好相反。

[root@kube list]# cat demo16.py 
#coding:utf-8

#定義一個list 當棧
stack = []
stack.append('one')
stack.append('two')
stack.append('three')
print(stack)
print('取第一個元素:',stack.pop())
print('取第二個元素:',stack.pop())
print('取第三個元素:',stack.pop())
[root@kube list]# py demo16.py 
['one', 'two', 'three']
取第一個元素: three
取第二個元素: two
取第三個元素: one
[root@kube list]#

collections模塊實現(xiàn)棧和隊列

queueAndStack = deque()
queueAndStack.append(1)
queueAndStack.append(2)
queueAndStack.append("hello")
print(list(queueAndStack))
#實現(xiàn)隊列功能,從隊列中取一個元素,根據(jù)先進先出原則,這里應(yīng)輸出 1
print(queueAndStack.popleft())
#實現(xiàn)棧功能,從棧里取一個元素,根據(jù)后進先出原則,這里應(yīng)輸出 hello
print(queueAndStack.pop())
#再次打印列表
print(list(queueAndStack))

以上就是深入了解python列表(LIST)的詳細內(nèi)容,更多關(guān)于Python(list)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解Python枚舉的定義與用法

    詳解Python枚舉的定義與用法

    這篇文章主要介紹了詳解Python枚舉的定義與用法,在Python中,枚舉和我們在對象中定義的類變量時一樣的,每一個類變量就是一個枚舉項,需要的朋友可以參考下
    2023-04-04
  • 用Python程序抓取網(wǎng)頁的HTML信息的一個小實例

    用Python程序抓取網(wǎng)頁的HTML信息的一個小實例

    這篇文章主要介紹了用Python程序抓取網(wǎng)頁的HTML信息的一個小實例,用到的方法同時也是用Python編寫爬蟲的基礎(chǔ),需要的朋友可以參考下
    2015-05-05
  • python讀取excel數(shù)據(jù)并且畫圖的實現(xiàn)示例

    python讀取excel數(shù)據(jù)并且畫圖的實現(xiàn)示例

    這篇文章主要介紹了python讀取excel數(shù)據(jù)并且畫圖的實現(xiàn)示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-02-02
  • python 制作python包,封裝成可用模塊教程

    python 制作python包,封裝成可用模塊教程

    這篇文章主要介紹了python 制作python包,封裝成可用模塊教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • python IP地址轉(zhuǎn)整數(shù)

    python IP地址轉(zhuǎn)整數(shù)

    這篇文章主要介紹了python 如何將IP 地址轉(zhuǎn)整數(shù),幫助大家了解轉(zhuǎn)換的原理與收益,更好的理解python,感興趣的朋友可以了解下
    2020-11-11
  • python調(diào)用bash?shell腳本方法

    python調(diào)用bash?shell腳本方法

    這篇文章主要給大家分享了額python調(diào)用bash?shell腳本方法,os.system(command)、os.popen(command)等方法,具有一定的參考價值,需要的小伙伴可以參考一下,希望對你有所幫助
    2021-12-12
  • Python爬蟲之requests基礎(chǔ)用法詳解

    Python爬蟲之requests基礎(chǔ)用法詳解

    這篇文章主要介紹了Python爬蟲之requests基礎(chǔ)用法詳解,雖然Python的標準庫中urllib模塊已經(jīng)包含了平常我們使用的大多數(shù)功能,但是它的API使用起來讓人感覺不太友好,而requests庫使用更簡潔方便,需要的朋友可以參考下
    2023-10-10
  • Python 旋轉(zhuǎn)打印各種矩形的方法

    Python 旋轉(zhuǎn)打印各種矩形的方法

    今天小編就為大家分享一篇Python 旋轉(zhuǎn)打印各種矩形的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python批量圖片去水印的方法

    Python批量圖片去水印的方法

    &#8203;平常工作中,有時為了采用網(wǎng)絡(luò)的一些素材,但這些素材往往被打了水印,如果我們不懂PS就無法去掉水印,或者無法批量去掉水印。本文就介紹了Python批量圖片去水印的方法,感興趣的可以了解一下
    2021-05-05
  • Python處理Excel文件遇到的常見問題解析與解決

    Python處理Excel文件遇到的常見問題解析與解決

    Python 的 pandas 庫提供了便捷的 read_excel() 方法,但在實際使用中,我們可能會遇到各種問題,本文將分析這些常見錯誤,并提供 Python 和 Java 的解決方案,有需要的可以參考下
    2025-04-04

最新評論

繁峙县| 林口县| 汾西县| 南通市| 扎囊县| 固始县| 弥勒县| 枣庄市| 金塔县| 来安县| 高青县| 高唐县| 政和县| 湟源县| 右玉县| 太谷县| 嘉义市| 昭平县| 色达县| 金堂县| 栾川县| 汕尾市| 莲花县| 中超| 无极县| 安康市| 安宁市| 德安县| 石林| 黄石市| 和田市| 温宿县| 巴林左旗| 历史| 南陵县| 乌鲁木齐市| 达尔| 黄骅市| 布拖县| 舟曲县| 永城市|