日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python 列表与元组的操作简介

發(fā)布時(shí)間:2023/11/30 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 列表与元组的操作简介 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

上一篇:Python 序列通用操作介紹

列表

列表是可變的(mutable)——可以改變列表的內(nèi)容,這不同于字符串和元組,字符串和元組都是不可變的。接下來(lái)討論一下列表所提供的方法。

list函數(shù)

可以使用list函數(shù)來(lái)創(chuàng)建列表:

list('Hello') ['H', 'e', 'l', 'l', 'o']

列表的基本操作

在Python 序列通用操作介紹中提及的操作全部適用于列表,例如索引、分片、連接、乘法等。而且由于列表是可以修改的,所以多了一些元素賦值、元素刪除、分片賦值的方法。

改變列表元素的值

>>> >>> a=list('ooooo') >>> a[2]='A' >>> a ['o', 'o', 'A', 'o', 'o'] >>>

刪除列表元素

使用del對(duì)列表元素進(jìn)行刪除:

>>> a ['o', 'o', 'A', 'o', 'o'] >>> del a[2] >>> a ['o', 'o', 'o', 'o'] >>> len(a) 4

刪除之后,列表的長(zhǎng)度也變成了4.關(guān)于del語(yǔ)句的使用后續(xù)介紹。

分片賦值

使用分片賦值可以同時(shí)改變一個(gè)范圍內(nèi)的字符:

>>> >>> str1= list('abcdef') >>> str1 ['a', 'b', 'c', 'd', 'e', 'f'] >>> str1[3:]=list('abc') >>> str1 ['a', 'b', 'c', 'a', 'b', 'c'] >>>

不止如此,分片賦值更強(qiáng)大的功能是使用長(zhǎng)度不等的序列替換分片:

#長(zhǎng)序列替換短分片 >>> str2=list('ppp') >>> str2 ['p', 'p', 'p'] >>> str2[1:]=('ython') >>> str2 ['p', 'y', 't', 'h', 'o', 'n'] >>> >>>#短序列替換長(zhǎng)分片 >>> str2= list('abcdefg') >>> str2 ['a', 'b', 'c', 'd', 'e', 'f', 'g'] >>> str2[1:]= list('bc') >>> str2 ['a', 'b', 'c'] >>>

利用分片操作,我們可以實(shí)現(xiàn)序列的插入操作---插入不過(guò)是替換掉某段“空”分片:

>>> str3=[1,5] >>> str3[1:1]=[2,3,4] >>> str3 [1, 2, 3, 4, 5] >>>

列表方法

方法與函數(shù)關(guān)系密切。方法本身就是函數(shù),只不過(guò)這函數(shù)是和對(duì)象結(jié)合在一起的,通過(guò)對(duì)象來(lái)調(diào)用方法。面向?qū)ο笳Z(yǔ)言中這些方法可稱為接口。方法調(diào)用的語(yǔ)法為:

對(duì)象.方法(參數(shù))

接下來(lái)我們就來(lái)看看列表這種類(lèi)型的對(duì)象提供了什么方法(接口)。

append

功能:用于在列表末尾追加新的元素

>>> lst=[1,2,3] >>> lst.append(4) >>> lst [1, 2, 3, 4] >>>

count

功能:用于統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù)

>>> [1,2,3,4,5,2,3,1,2,3,42,1,2,3,5].count(1) 3 >>>

extend

功能:在列表末尾一次性追加另一個(gè)序列中的多個(gè)值

>>> >>> a=[1,2,3] >>> b=[4,5,6] >>> a.extend(b) >>> a [1, 2, 3, 4, 5, 6] >>>

index

功能:用于從列表中找出某個(gè)值第一個(gè)匹配項(xiàng)的索引位置

>>> a=['Me','and','my','broken'] >>> a.index('my') 2 >>>

insert

功能:用于將對(duì)象插入到列表中對(duì)應(yīng)位置

>>> >>> number=[1,2,3,4,5] >>> number.insert(3,'hello') >>> number [1, 2, 3, 'hello', 4, 5] >>> number.insert(3,6) >>> number [1, 2, 3, 6, 'hello', 4, 5] >>>

pop

功能:該方法從列表中彈出一個(gè)元素,默認(rèn)是最后一個(gè)。并且返回彈出的元素

>>> >>> number=[1,2,3,4,5,6,7,8] >>> a = number.pop() >>> a 8 >>> number [1, 2, 3, 4, 5, 6, 7] >>>

利用append(從末尾添加一個(gè)元素)方法,我們可以來(lái)實(shí)現(xiàn)一種常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)--棧。

當(dāng)然,POP方法可以從序列中彈出任意位置的元素:

>>> >>> number [1, 2, 3, 4, 5, 6, 7] >>> number.pop(3) 4 >>> number [1, 2, 3, 5, 6, 7] >>>

remove

功能:從列表中移除某個(gè)值的第一個(gè)匹配項(xiàng)。與pop不同的是,該方法并不返回移除的元素。

>>> str4 = list('hello') >>> str4 ['h', 'e', 'l', 'l', 'o'] >>> str4.remove('l') >>> str4 ['h', 'e', 'l', 'o'] >>>

reverse

功能:該方法對(duì)序列方向存放

>>> >>> number [1, 2, 3, 5, 6, 7] >>> number.reverse() >>> number [7, 6, 5, 3, 2, 1] >>>

注意該方法改變了列表但是沒(méi)有返回值。

如果需要對(duì)一個(gè)序列進(jìn)行反向迭代,可以使用reversed函數(shù)。這個(gè)函數(shù)并不返回一個(gè)列表,而是返回一個(gè)迭代器對(duì)象,可以使用list把迭代器對(duì)象轉(zhuǎn)換成列表:

>>> >>> number [7, 6, 5, 3, 2, 1] >>> number = list(reversed(number)) >>> number [1, 2, 3, 5, 6, 7] >>>

sort

功能:用于在原位置度列表進(jìn)行排序。 在原位置意味著列表會(huì)被修改。

>>> number [1, 4, 3, 7, 4, 8, 3, 2, 7, 9] >>> number.sort() >>> number [1, 2, 3, 3, 4, 4, 7, 7, 8, 9] >>>

應(yīng)注意的是,sort()方法的返回值并不是序列本身,而是None。

如何保存原序列順序而進(jìn)行排序?

  • 方法一
>>> >>> x = [3,5,7,3,1,2,4] >>> y =x[:] >>> y.sort() >>> x [3, 5, 7, 3, 1, 2, 4] >>> y [1, 2, 3, 3, 4, 5, 7] >>>

注意將列表x賦值給列表y時(shí)千萬(wàn)別使用直接賦值,否則y與x指向了相同的對(duì)象,對(duì)y的修改即是對(duì)x的修改:

>>> >>> x [3, 5, 7, 3, 1, 2, 4] >>> y=x >>> y.sort() >>> x [1, 2, 3, 3, 4, 5, 7] >>> y [1, 2, 3, 3, 4, 5, 7] >>>
  • 方法二

當(dāng)然,你也可以使用函數(shù)來(lái)進(jìn)行排序。

函數(shù):sorted().

功能:對(duì)任何序列進(jìn)行排序,結(jié)果返回一個(gè)排好序的列表

>>> >>> x=[3,5,2,1,7,4,8,9,3] >>> y=sorted(x) >>> x [3, 5, 2, 1, 7, 4, 8, 9, 3] >>> y [1, 2, 3, 3, 4, 5, 7, 8, 9] >>>

如何修改排序規(guī)則?

從上面的例子我們看到,sort方法的默認(rèn)排序都是升序的。sort方法有兩個(gè)可選的參數(shù),可以通過(guò)它來(lái)修改排序規(guī)則:

  • key

key參數(shù)提供一個(gè)在排序過(guò)程中使用的函數(shù),利用該函數(shù)來(lái)為列表中元素創(chuàng)造一個(gè)鍵(key),依據(jù)鍵來(lái)對(duì)列表元素(值)進(jìn)行排序。

>>> >>> str5= ['one','year','like','any','old','other','year'] >>> #默認(rèn)的排序依據(jù)字符串排序規(guī)則 >>> str5.sort() >>> str5 ['any', 'like', 'old', 'one', 'other', 'year', 'year'] >>> #使用key參數(shù)來(lái)修改排序規(guī)則 >>> #我們使用字符長(zhǎng)度作為鍵來(lái)排序 >>> str5.sort(key=len) >>> str5 ['any', 'old', 'one', 'like', 'year', 'year', 'other'] >>>
  • reverse

另一個(gè)參數(shù)reverse是個(gè)簡(jiǎn)單的bool值,用來(lái)指明是否要反向排序;

>>> >>> num=[2,3,4,5,6,78,4,3,3,4,5,8,9] >>> num.sort() >>> num [2, 3, 3, 3, 4, 4, 4, 5, 5, 6, 8, 9, 78] >>> num.sort(reverse=True) >>> num [78, 9, 8, 6, 5, 5, 4, 4, 4, 3, 3, 3, 2]

借助參數(shù)key,我們可以定義自己的比較函數(shù)來(lái)自定義比較規(guī)則。函數(shù)的定義在后面進(jìn)行介紹。

元組

元組與列表的區(qū)別就在于,元組是一種不可變序列。元組變量的賦值要在定義時(shí)就進(jìn)行,這就像C語(yǔ)言中的const變量或是C++的引用,定義時(shí)賦值之后就不允許有修改。元組存在的意義是:

  • 元組在映射中可以作為鍵使用,因?yàn)橐WC鍵的不變性。
  • 元組作為很多內(nèi)置函數(shù)和方法的返回值存在。

tuple()函數(shù)

類(lèi)比于列表的list()函數(shù),元組有tuple()函數(shù)來(lái)返回元組。

>>> >>> tul1= tuple('abcdef') >>> tul1 ('a', 'b', 'c', 'd', 'e', 'f') >>>

元組語(yǔ)法

從tuple返回的元組我們看到,元組的語(yǔ)法是用圓括號(hào)(大部分時(shí)候是)括起來(lái)的、用逗號(hào)加以分隔的元素的集合。逗號(hào)在元組構(gòu)成中十分重要:

>>> >>> #這是一個(gè)數(shù)學(xué)數(shù) >>> (1) 1 >>> #這是一個(gè)元組 >>> (1,) (1,) >>>

一個(gè)更加明顯的例子:

>>> >>> a = 10*(1) >>> b = 10*(1,) >>> a 10 >>> b (1, 1, 1, 1, 1, 1, 1, 1, 1, 1) >>>

了解了逗號(hào)在元組構(gòu)成的重要性后,我們來(lái)看如何定義各種元組

定義元組

定義空元組

>>> >>> tul1=() >>> tul1 () >>>

定義只有一個(gè)元素的元組

>>> >>> tul2=(1,) >>> tul2 (1,) >>>

定義多個(gè)元素構(gòu)成的元組類(lèi)似于定義一個(gè)元素的元組,也可以使用tuple函數(shù)把其他序列轉(zhuǎn)換為元組:

>>> >>> a = [1,2,3,4,5,6] >>> b = tuple (a) >>> b (1, 2, 3, 4, 5, 6) >>>

元組操作

因?yàn)樵M不可修改,與列表比較少了很多操作,比如attend、insert 等。而其他操作例如分片、索引操作等都類(lèi)似于列表。故在使用元組時(shí),時(shí)刻記住元組不可修改,自然就知道元組有哪些操作了。

多謝看完文章,如所記有差錯(cuò)懇請(qǐng)指出。

轉(zhuǎn)載于:https://www.cnblogs.com/QG-whz/p/4782809.html

總結(jié)

以上是生活随笔為你收集整理的python 列表与元组的操作简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。