电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

深入了解python列表(LIST)

瀏覽:83日期:2022-07-22 09:12:39

Python 內置的四種常用數據結構:列表(list)、元組(tuple)、字典(dict)以及集合(set)。

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

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

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

python 序列詳解

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

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

注意,在使用負值作為列序中各元素的索引值時,是從 -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]#

序列切片

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

序列實現切片操作的語法格式如下:

sname[start : end : step]

其中,各個參數的含義分別是:

sname:表示序列的名稱;

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

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

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

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

序列相加

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

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

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

序列相乘

Python 中,使用數字 n 乘以一個序列會生成新的序列,其內容為原來序列被重復 n 次的結果

[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 關鍵字檢查某元素是否為序列的成員,其語法格式為:

value in sequence

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

value not in sequence

[root@kube list]# cat demo4.py #coding:utf-8str='test.com.cn'print(’e’ in str)print(’e’ not in str)[root@kube list]# py demo4.py TrueFalse[root@kube list]#

和序列相關的內置函數

Python提供了幾個內置函數(表 3 所示),可用于實現與序列相關的一些常用操作

表 3 序列相關的內置函數

函數 功能 len() 計算序列的長度,即返回序列中包含多少個元素。 max() 找出序列中的最大元素。注意,對序列使用 sum() 函數時,做加和操作的必須都是數字,不能是字符或字符串,否則該函數將拋出異常,因為解釋器無法判定是要做連接操作(+ 運算符可以連接兩個序列),還是做加和操作。 min() 找出序列中的最小元素。 list() 將序列轉換為列表 str() 將序列轉換為字符串。 sum() 計算元素和。 sorted() 對元素進行排序。 reversed() 反向序列中的元素。 enumerate() 將序列組合為一個索引序列,多用在for循環中。

[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 中沒有數組,但是加入了更加強大的列表。如果把數組看做是一個集裝箱,那么 Python 的列表就是一個工廠的倉庫。

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

[element1,element2,element3,...,elementn]

[root@kube list]# cat demo6.pylt=[’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]#

創建列表

[root@kube list]# cat demo7.pylt=[1,’x.test.com’,[2,3]] # = 號賦值使用 [] 括起來str='1234test'print(type(lt))print(type(str))lt2=list(str) #使用 list() 函數轉換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.pyvol=[1,’test.com’,[3,4,5],44,’fff’,’ee’]print(vol[:1])print(vol[:2])print(vol[2:4])del volprint(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 參數指的是將元素插入到列表中指定位置處的索引值。

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

[root@kube list]# cat demo9.pya_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 種應用場景:

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

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

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

python list 修改元素

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

slice 分片同樣可以使用

[root@kube list]# cat demo11.py a_list=list(range(0,10)) #list() 函數轉換為列表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 參數。但如果指定了 step 參數,則要求所賦值的列表元素個數與所替換的列表元素個數相等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() 方法,此方法用于統計列表中某個元素出現的次數

listname.count(obj)

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

listname.index(obj,start,end)

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

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

listname.pop(index)

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

listname.reverse()

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

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

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

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

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

下面代碼示范了使用列表作為“棧”的示例:

stack = []# 向棧中“入棧”3個元素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 快速初始化數字列表

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

[root@kube list]# cat demo14.py #coding:utf-8seq=[]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 類型的轉化print(type(range(1,5)))[root@kube list]# py demo14.py [1, 4, 9]----------------------------<class ’list’><class ’range’>[root@kube list]#

python list 列表實現棧和隊列

隊列和棧是兩種數據結構,其內部都是按照固定順序來存放變量的,二者的區別在于對數據的存取順序:

隊列是,先存入的數據最先取出,即“先進先出”。

棧是,最后存入的數據最先取出,即“后進先出”。

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

python list 列表實現

使用 list 列表模擬隊列功能的實現方法是,定義一個 list 變量,存入數據時使用 insert() 方法,設置其第一個參數為 0,即表示每次都從最前面插入數據;讀取數據時,使用 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 實現棧

使用 list 列表模擬棧功能的實現方法是,使用 append() 方法存入數據;使用 pop() 方法讀取數據。append() 方法向 list 中存入數據時,每次都在最后面添加數據,這和前面程序中的 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模塊實現棧和隊列

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

以上就是深入了解python列表(LIST)的詳細內容,更多關于Python(list)的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 焊接烟尘净化器__焊烟除尘设备_打磨工作台_喷漆废气治理设备 -催化燃烧设备 _天津路博蓝天环保科技有限公司 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 气动调节阀,电动调节阀,自力式压力调节阀,切断阀「厂家」-浙江利沃夫自控阀门 | 众品家具网-家具品牌招商_家具代理加盟_家具门户的首选网络媒体。 | 集菌仪_智能集菌仪_全封闭集菌仪_无菌检查集菌仪厂家-那艾 | 耐酸泵,耐腐蚀真空泵,耐酸真空泵-淄博华舜耐腐蚀真空泵有限公司 精密模具-双色注塑模具加工-深圳铭洋宇通 | 百方网-百方电气网,电工电气行业专业的B2B电子商务平台 | 凝胶成像系统(wb成像系统)百科-上海嘉鹏 | 首页|专注深圳注册公司,代理记账报税,注册商标代理,工商变更,企业400电话等企业一站式服务-慧用心 | 空气净化器租赁,空气净化器出租,全国直租_奥司汀净化器租赁 | 设定时间记录电子秤-自动累计储存电子秤-昆山巨天仪器设备有限公司 | 小程序开发公司_APP开发多少钱_软件开发定制_微信小程序制作_客户销售管理软件-济南小溪畅流网络科技有限公司 | 谷歌关键词优化-外贸网站优化-Google SEO小语种推广-思亿欧外贸快车 | 水性绝缘漆_凡立水_绝缘漆树脂_环保绝缘漆-深圳维特利环保材料有限公司 | 户外-组合-幼儿园-不锈钢-儿童-滑滑梯-床-玩具-淘气堡-厂家-价格 | 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | 深圳办公室装修,办公楼/写字楼装修设计,一级资质 - ADD写艺 | 间苯二酚,间苯二酚厂家-淄博双和化工 | 玉米加工设备,玉米深加工机械,玉米糁加工设备.玉米脱皮制糁机 华豫万通粮机 | 空调风机,低噪声离心式通风机,不锈钢防爆风机,前倾皮带传动风机,后倾空调风机-山东捷风风机有限公司 | 珠海白蚁防治_珠海灭鼠_珠海杀虫灭鼠_珠海灭蟑螂_珠海酒店消杀_珠海工厂杀虫灭鼠_立净虫控防治服务有限公司 | 呼末二氧化碳|ETCO2模块采样管_气体干燥管_气体过滤器-湖南纳雄医疗器械有限公司 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 东莞工厂厂房装修_无尘车间施工_钢结构工程安装-广东集景建筑装饰设计工程有限公司 | 办公室装修_上海办公室设计装修_时尚办公新主张-后街印象 | 德国EA可编程直流电源_电子负载,中国台湾固纬直流电源_交流电源-苏州展文电子科技有限公司 | 桥架-槽式电缆桥架-镀锌桥架-托盘式桥架 - 上海亮族电缆桥架制造有限公司 | 防爆电机_防爆电机型号_河南省南洋防爆电机有限公司 | 欧必特空气能-商用空气能热水工程,空气能热水器,超低温空气源热泵生产厂家-湖南欧必特空气能公司 | 成都办公室装修-办公室设计-写字楼装修设计-厂房装修-四川和信建筑装饰工程有限公司 | 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | 奥因-光触媒除甲醛公司-除甲醛加盟公司十大品牌 | 回收二手冲床_金丰旧冲床回收_协易冲床回收 - 大鑫机械设备 | 中视电广_短视频拍摄_短视频推广_短视频代运营_宣传片拍摄_影视广告制作_中视电广 | 一体化预制泵站-一体化提升泵站-一体化泵站厂家-山东康威环保 | 机械立体车库租赁_立体停车设备出租_智能停车场厂家_春华起重 | 耙式干燥机_真空耙式干燥机厂家-无锡鹏茂化工装备有限公司 | 山东柳店新能源科技有限公司| 宜兴紫砂壶知识分享 - 宜兴壶人| 气象监测系统_气象传感器_微型气象仪_气象环境监测仪-山东风途物联网 | 济南宣传册设计-画册设计_济南莫都品牌设计公司 |