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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转载] 列表、元组及通用序列操作

發(fā)布時間:2025/3/11 编程问答 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转载] 列表、元组及通用序列操作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

參考鏈接: Python | 重點數(shù)據(jù)類型 (字符串,列表,元組,迭代)(String, List, Tuple, Iteration)

序列是Python中最基本的數(shù)據(jù)結(jié)構(gòu)(一些基本特性類似于C++中的數(shù)組模板類),序列中的每一個元素都有相應(yīng)的位置序號,從0開始。列表和元組屬于序列,因此用于通用序列的操作都可以應(yīng)用于它們,同時它們也有各自獨特的方法。

?

通用序列操作?

?

所有的序列類型都可以進行某些特定的操作,例如索引(indexing)、分片(slicing)、加(adding)、乘(multiplying)、迭代(iteration)、成員資格檢查等。

?

索引(indexing)?

?

序列中的所有元素都有對應(yīng)的位置序號——從0開始遞增。我們通過其對應(yīng)序號訪問某一個或某些元素的過程就是索引的過程。除了整數(shù)索引外,Python還提供了負(fù)數(shù)索引以更方便地訪問序列元素。使用負(fù)數(shù)索引時,Python會從序列的右邊,也就是最后一個元素開始計數(shù),-1代表最后一個元素,-2代表倒數(shù)第二個元素,依此類推(沒有-0)。 序列字面值能夠直接使用索引,而不需要通過變量來訪問。??

如果一個函數(shù)調(diào)用返回一個序列,那么可以直接對返回結(jié)果(也就是序列)進行索引操作。?

?

#!/usr/bin/env python

str1 = "Hello World!"

print str1[0]

print str1[-1]

?

print "Hello World!"[0]

?

str2 = raw_input("Please enter a string: ")[2]

print str2

?

?

?

??

分片(slicing)?

?

分片操作可以用來訪問序列中一定范圍內(nèi)的元素。分片操作通過一個冒號隔開的兩個索引來實現(xiàn),此時將訪問包括第一個索引序號,不包括第二個索引序號的范圍內(nèi)的序列元素,也即左閉右開的半開區(qū)間。 Python的索引操作支持負(fù)數(shù)索引,因此也可以用負(fù)數(shù)索引方便地訪問序列中排在末尾部分的元素。需要注意的是,由于分片的索引范圍是左閉右開區(qū)間,因此如果需要訪問最后一個元素時,需要置空第二個索引。同樣如果要從第一個元素開始訪問,也可以置空第一個索引(與0效果相同)。 在分片的時候,我們還可以設(shè)置第三個參數(shù)——步長,來滿足我們的一些特殊需求。默認(rèn)情況下步長參數(shù)的值為1,我們可以顯式地設(shè)置它。??

步長參數(shù)甚至支持負(fù)數(shù),如果步長為負(fù)數(shù),分片操作將會從右往左提取序列元素,使用負(fù)數(shù)步長時第一個索引序號必須大于第二個索引序號,否則分片結(jié)果會為空。對于負(fù)數(shù)步長,分片操作依然按照左閉右開區(qū)間來提取序列元素。?

?

?

#!/usr/bin/env python

str = "Hello, world!"

print str[0:3]

num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

print num[1:6]

print num[-3:-1]

print num[-3:]

print num[:3]

print num[:]

print num[0:8:2]

print num[8:0:-2]

?

?

?

?

加(adding)?

序列相加的操作很簡單,可以將序列連接在一起,但加操作只能應(yīng)用于相同類型的序列,例如列表和字符串是不能連接在一起的。?

?

#!/usr/bin/env python

str1 = "Hello, "

str2 = "world"

print str1+str2

num1 = [1, 2, 3]

num2 = [4, 5, 6]

print num1+num2

?

?

?

?

?

?

乘(multiplying)?

?

序列的乘操作是一個序列乘一個數(shù)字n(正整數(shù)),其結(jié)果會生成一個新的序列,這個新序列內(nèi)的元素為原來的序列被重復(fù)n次。??

利用序列的乘操作可以初始化列表。Python中有一個內(nèi)建值None,與C中的NULL和C++中的nullptr一樣,代表空值。因此可以利用空值None結(jié)合乘操作來創(chuàng)建或者初始化序列。?

?

str = "Hello"

print str*3

init = [None]*10

print init

?

?

? ?

成員資格檢查?

這個操作可以檢查一個值是否在序列中,用in運算符實現(xiàn),該運算符返回一個布爾值。?

?

str = "This is a string."

print 'i' in str

print 'o' in str

?

?

?

?

長度、最小值和最大值?

內(nèi)建函數(shù)len、min和max分別返回序列的元素數(shù)量、最小值、最大值。?

?

num = [8, 24, 33, 135, 1024]

print len(num)

print min(num), max(num)

?

?

?

?

列表(List)?

列表是一種可變的序列,可以改變列表的內(nèi)容。列表的定義方式在通用序列操作中已經(jīng)出現(xiàn)了很多次:使用中括號[]將列表括起來,列表元素之間用逗號“,”隔開。除此之外,Python還提供了一個非常好用的內(nèi)建函數(shù)list來將各種類型的序列轉(zhuǎn)化為列表。?

?

demo_of_list1 = [1, 2, 3]

print demo_of_list1

demo_of_list2 = list("Hello, world")

print demo_of_list2

?

?

?

?

列表操作?

1.元素賦值??

結(jié)合索引和賦值語句,可以很簡單地對列表元素進行賦值(列表元素必須存在)。?

?

#!/usr/bin/env python

tmp = [None]*10

print tmp

tmp[2] = 24

print tmp

?

?

?

?

2.元素刪除??

使用del語句就可以刪除元素。?

?

#!/usr/bin/env python

tmp = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

print tmp

del tmp[0]

print tmp

del tmp[0:8]

print tmp

?

?

?

?

3.分片賦值??

結(jié)合分片操作可以對列表中的多個元素進行賦值,甚至變相達到插入、刪除元素的目的。?

?

#!/usr/bin/env python

#coding:utf-8

num = [ 1, 2, 3, 4, 5, 6]

print num

num[0:2] = [24, 33]

print num

num[:2] = [0, 1, 2] #替換元素長度可以與被替換部分不同

print num

num[3:3] = [33, 24, 794]

print num

num[:6] = []

print num

?

?

?

列表方法?

1.append append用于在列表末尾追加新的對象,append方法直接修改原列表,無返回值,且一次方法調(diào)用只能追加一個對象。?

?

?

#!/usr/bin/env python

#coding:utf-8

?

num = [1, 2, 3]

print num

num.append(4)

print num

num.append([5, 6]) #對append方法而言,這是一個元素而不是兩個元素(也即一個對象)

print num

?

?

?

2.count count方法統(tǒng)計某個元素在列表中出現(xiàn)的次數(shù),返回值為統(tǒng)計次數(shù)。?

?

?

#!/usr/bin/env python

#coding:utf-8

?

str =list("This is a string")

print str.count("t")

print str.count("i")

print " "

num = [1, 2, 2, 3, 4, 5, 6, 6, 6]

print num.count(2)

print num.count(6)

?

?

?

3.extend extend方法可以用一個列表去擴展原有的列表,與連接操作(“+”)不同的是,extend方法修改了被擴展的序列且沒有返回值,而連接操作會返回一個新列表。用分片賦值操作也可以實現(xiàn)相同的結(jié)果。?

?

?

#!/usr/bin/env python

#coding:utf-8

?

num1 = [1, 2, 3]

num2 = [4, 5]

print num1

print num2

num1.extend(num2) #對象為被擴展序列,方法接受的參數(shù)為擴展序列

print num1

print num2

?

?

?

4.index index方法用于從列表中找出指定值的第一個匹配項的位置并返回其索引值。?

?

?

#!/usr/bin/env python

#coding:utf-8

?

tmp = list("Hello")

print tmp

print tmp.index("l")

?

?

?

5.insert insert方法將一個對象插入到列表中,該方法接受的第一個參數(shù)為插入位置(索引),第二個參數(shù)為對象。insert方法一次只能插入一個元素。?

?

?

#!/usr/bin/env python

#coding:utf-8

?

num1 = [1, 2, 3]

num2 = [4, 5]

print num1

print num2

num1.insert(1, num2)

print num1

num2.insert(0, 33)

print num2

?

?

6.pop pop方法用于移除列表中的一個元素(默認(rèn)是最后一個,也可以指定刪除某一元素),并且返回該元素的值。使用pop方法和append方法可以實現(xiàn)棧操作,而隊列操作可以用pop方法和insert方法來完成。?

?

#!/usr/bin/env python

#coding:utf-8

?

num = [1, 2, 3, 4, 5]

print num

print num.pop()

print num

print num.pop(1) #指定刪除

print num

?

?

?

7.remove remove方法用于移除列表中指定值的第一個匹配項,remove方法沒有返回值。?

?

?

#!/usr/bin/env python

#coding:utf-8

?

tmp = list("Hello")

print tmp

tmp.remove("l")

print tmp

?

?

?

8.reverse reverse方法將列表倒序存放(直接修改列表),沒有返回值。?

?

?

#!/usr/bin/env python

#coding:utf-8

?

num = [1, 2, 3, 4, 5, 6]

print num

num.reverse()

print num

?

?

?

9.sort sort方法用于對列表進行排序(直接修改原列表),如果想要保留原列表就需要自行創(chuàng)建副本。sort方法的排序算法是固定的,而且默認(rèn)升序。?

?

?

#!/usr/bin/env python

#coding:utf-8

?

num1 = [33, 8, 24, 1, 5, 0, 9]

num2 = [101, 24, 135, 6, 1024]

print "num1: ", num1

num1.sort()

print "排序后:", num1

tmp = num2 #自行創(chuàng)建副本

tmp.sort()

print "num2: ", num2

print "tmp: ", tmp

?

?

?

如果希望元素能夠按照特定方式排序,那么可以通過compare(x, y)的形式自定義比較函數(shù)。此外,sort方法還有另外兩個可選參數(shù)key和reverse。關(guān)于sort方法的高級應(yīng)用寫在另一篇博文中。

?

元組(Tuple)?

元組也是序列的一種,但與列表不同的是,元組不能修改(元組與列表在技術(shù)實現(xiàn)上不同)。元組由圓括號括起元組元素,元素之間用逗號分隔。還可以用tuple函數(shù)將一個序列轉(zhuǎn)化為元組。?

?

#!/usr/bin/env python

#coding:utf-8

?

tmp1 = (1, 2, 3)

print tmp1

tmp2 = tuple("python")

print tmp2

總結(jié)

以上是生活随笔為你收集整理的[转载] 列表、元组及通用序列操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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