當前位置:首頁 » 編程語言 » 序列python

序列python

發布時間: 2023-04-14 09:05:06

1. python中什麼是序列,列表,元組,字元串,索引,區別是什麼

python中什麼是序列,列表,元組,字元串,索引,區別是什麼?

序列:可通過偏移量來進行切片的對象。列表、元組、字元串都屬於序列。
散列:無法通過偏移量來進行切片的對象。比如 *** 、字典

序列包括:列表、元組、字元串
列表:是最常用的數組,可以進行嵌套;
元組:相當於Enum,一旦創建,元組的值是不允許修改的;
字元串:顧名思義就是中英文字元以及標點符號等。
索引:序列中的每個元素被分配一個序號。注意索引默認從0開始。

python中列表,元組,字元串如何互相轉換

python中有三個內建函數:列表,元組和字元串,他們之間的互相轉換使用三個函數,str(),tuple()和list(),具體示例如下所示:>>> s = "xxxxx"
>>> list(s)
['x', 'x', 'x', 'x', 'x']
>>> tuple(s)
('x', 'x', 'x', 'x', 'x')
>>> tuple(list(s))
('x', 'x', 'x', 'x', 'x')
>>> list(tuple(s))
['x', 'x', 'x', 'x', 'x'] 列表和元組轉換為字元串則必須依靠join函數

1. str轉list
list = list(str)
2. list轉str
str= ''.join(list)
3. tuple list相互轉換
tuple=tuple(list)
list=list(tuple)

python中字元串方法isnumeric和isdigit的區別是什麼

isdigit()
True: Unicode數字,byte數字(單位元組),全形數字(雙位元組),羅馬數字
False: 漢字數字
Error: 無
isnumeric()
True: Unicode數字,全形數字(雙位元組),羅馬數字,漢字數字
False: 無
Error: byte數字(單位元組)

2. Python 通用的序列操作

序列 (sequence)是Python最基本的一種數據結構。

序列中的每個元素都有編號,即其位置或索引,其中第一個元素的索引為0,第二個元素的索引為1,依此類推。Python的序列索引支持負數,-1表示序列的最後一個元素,這是Python不同其他很多種語言不同的地方。

Python內置了多種序列,列表、元組、字元串是其中最常用的三種,本文為你描述各種序列的通用操作。

索引從0開始,索引號為0的元素為1,greeting的索引號為0的元素為'H'。

你可能注意到'Hello'和'H'都用單引號包圍,這是Python不同於其他語言的另一個地方。Python並沒有專門用於表示字元的數據類型,因此一個字元就是一個只包含一個元素的字元串。

Python的序列索引支持負數,-1表示倒數第一個元素。

切片 (slicing)操作用於訪問序列特定 范圍 內的元素。在一對方括弧內使用兩個索引,並用冒號隔開:

注意到,返回的序列並未包含願序列的第6個元素7,就相當於數學集合中的 左閉右開區間 操作。

換言之,你提供兩個索引來指定切片的邊界,其中第一個索引指定的元素包含在切片內,但第二個索引指定的元素不包含在切片內。

保留冒號,省略羨運備第一個索引,表示從序列起始位置開始切片;省略第二個索引,表示切片到序列末尾,包含最後一個元素:

這個操作的效果是:在指定的區間內間隔取元素,語法格式為:

例如:

步長為正數時,它從起點移到終點,而步長為負數時,它從終點移到起點。

可以使用加法運算(+運算符)拼接兩個序列:

從錯誤消息兄毀可知,不能拼接列表和字元串,雖然它們都是序列。一般而言,不悄配能拼接不同類型的序列。

將序列與數x 相乘時,將重復這個序列x 次來創建一個新序列:

初始化一個長度為10的空列表:

成員資格檢查判定一個元素是否存在於集合中,如存在返回True,否則返回False,實際上是一個布爾表達式。

語法:

例如:

內置函數 len 返回序列包含的元素個數,而 min 和 max 分別返回序列中最小和最大的元素。

Python通用的序列操作有:索引、切片、乘法、成員資格檢查、長度、最小值和最大值。

3. python序列

一、序列

1、序列中的索引操作

序列中的元素都是有序的,每一個元素都帶有序號,這個序號叫 索引。索引有正值索引和負值索引之分。

2、加乘操作

3、切片操作

序列的切片(Slicing)就是從序列中切分出小的子序列。

切片運算符的語法形式為[start:end:step]。其中,start是開始索引,end是結束索引,step是步長(切片時獲取的元素的間隔,可以為正整數,也可以為負整數)。

注意:切下的小切片包括start位置的元素,但不包括end位置的元素,start和end都可以省略。步長默認為1,可省略。

二、操作字元串

2.1查找字元串

字元串的find( )方法空廳用於查找子字元串。該方法的語法為str.find(sub[,start[,end]]),表示:在索引start到end之間查找子字元串sub,如果找到,則返回最左端位置的索引;如果沒有找到,則返回-1。start跟end都可以省略。

2.2替斗消隱換字元串

replace( )方法替換匹配的子字元串,返回值是替換之後的字元串。該方法的語法為str.replace(old,new[,count]),表示:用new子字元串替換old子字元串。count參數指定了替換old子字元串的個數,如果count被省橋隱略,則替換所有old子字元串。

2.3分割字元串

split( )方法,按照子字元串來分割字元串,返回字元串列表對象。該方法的語法為str.split(sep=None,maxsplit=-1),表示:使用sep子字元串分割字元串str。maxsplit是最大分割次數,如果maxsplit被省略,則表示不限制分割次數。

2.4統計英文文章中單詞出現的頻率

4. python常用序列結構

序列是python的基本數據結構,序列中的每個元素被分配一個序號即索引,索引從0開始。

序列的兩種常用類型:列表和元組。

列表與元組的區別:列表可修改,元組不能修改。

通用序列操作

1、索引:索引0指向第一個元素,索引-1指向最後一個元素。

2、程序:輸入年,月(1-12),日(1-31),然後列印出相應的日期的月份名稱。

代碼詳解:months=[]:定義一個months序列。

endings=['st','nd','rd']+17*['th']\

+['st','nd','rd']+7*['th']\

+['st']:定義一個endings序列,用來表示1-31的英文縮寫,1st,2nd,3rd,4-20th,21st,22nd,23rd,24-30th,31st。

代碼運行輸出結果:

3、分片:提取序列中的某個范圍內的元素。

分片tag[9:30]:第一個索引號9是包含在分片內的,第二個索引號30則不包含在分片內。

4、如果要去序列中最後一個最後一個元素怎麼辦?

可以通過置空,最後一個一個索引來獲取最後的元素。可以通過置空最前的索引來獲取第一個元素。可以兩邊都置空來獲取整個元素。

5、步長:

正數步長:從序列的頭部開始向右提取元素,直到最後一個元素。

負數步長:從序列的尾部開始向左提取元素,直到第一個元素。

6、序列運算

序列相加:對序列進行連接操作,列表與字元串是無法連接在一起的。

序列相乘:數字x乘以一個序列會生成新的序列,即原來的序列被重復x次。

None,空列表和初始化:初始化一個長度為10的列表。

代碼分析:在屏幕上列印一個由字元組成的盒子,這個盒子在屏幕上居中,而且根據用戶輸入的句子自動調整大小。

成員資格:in運算符,輸入布爾運算符,當條件為真時返回true,為假則返回false。

以上代碼在UNIX系統中,可以檢查文件可寫和可執行許可權的腳本

以上代碼可以檢查輸入的用戶名是否存在於用戶列表中。

以上代碼可以作為過濾垃圾郵件的一部分。

代碼分析:查看用戶輸入的用戶名,密碼是否存在於資料庫中,如果存在則列印'Access granted'

程序運行結果:

內建函數:len:返回序列中包含元素的數量,min:返回序列中最小的元素,max:返回序列中最大的元素。

5. python基礎之序列類型的方法——列表&元組

首先登場的選手是python的列表,列表屬於可變類型,所以它將有完整的增刪改查方法,讓我們一起來看看具體是什麼。

增,顧名思意就是可以對列表進行新增元素的操作,python的列表提供了三種新增元素的操作,分別是:append() ,insert(), extend()

首先是append(),它可以將一個元素追加到列表的末尾。
舉個栗子:

上述代碼中,我們使用的是li.append('新增內容')的方式來為列表添加元素
li.append()使列表li調用自身的方法append(),這樣就可以在列表的末尾添加一個新的元素。

接下來是insert(),append()是排隊,那insert()就是插隊的意思啦,它可以將一個元素插入到列表的自定位置:
li.insert(索引,元素)

這樣就將字元串helloworld插入到了列表的第四個位置里。

上面兩個方法是對單個元素進行增加,如果我們需要增加多個元素怎麼辦?
那就可以使用我們的extend()來進行添加,extend()可以將序列中的每個元素添加到末尾:

上面的代碼先定義了兩個列表l1和l2,然後使用l1.extend(l2),將l2的每個元素添加到了l1的末尾。

增加講完了,接下來進行刪除操作,刪除也有對應的四個方法:del(),pop(),remove(),clear()

del()是單獨的方法,不需要通過列表本身來進行調用,可以直接使用:

上述代碼刪除了li[0],但是請注意,如果不進行索引的話,默認會將這個變數刪除,請謹慎使用:

這就是刪除了整個變數,再列印這個變數時就會提示變數未定義

pop()方法不帶參數的話刪除默認刪除最後一個元素,帶參數的話則刪除指定的下標值:

pop()還有個神奇的地方,它可以讓你需要刪除的參數取出來繼續使用,使用完了再進行刪除:

上述代碼使用pop()刪除了第一個元素,然後使用第一個元素進行了一個簡單的判斷,說明pop()可以為我們返回刪除的元素,讓我們先使用,使用完再刪除

remove()用來刪除一個指定元素,無返回值,無法使用下標刪除:

上述代碼使用remove()刪除了一個元素l

clear()用於清空列表,與del不同的是,它會為我們保留空列表,而不會把變數都刪除:

上述代碼清除了列表後,保留了空列表

改的方法就比較簡單,直接索引出下標重新賦值即可:

這里就對li[0]進行了重新賦值

有通過index查詢指定元素返回對應下標,也可以使用count來計算該元素出現過的次數:

除了增刪改查,列表中還有其他的方法復制()、倒敘排列reverse()、從小到大排列sort()

使用li.(),再用一個變數接收復制的列表,就可以實現復制出一個新的列表來

sort()方法可以將數字類型的進行從小到大的排列,一般也用於同類型的排列

元組作為不可變類型,只能查和刪,如果需要其他操作需要轉換成列表

只能刪除整個元組,無法使用下標值,刪除後再使用會提示沒有定義變數

元組只有查和刪的方法,如果需要修改應先轉成列表修改再轉回元組,但是不建議這么做,因為修改過的元組就已經不是原來的那個元組了,而且設置元組也是為了這組數據不希望受到修改

以上就是關於列表&元組的方法了,有興趣的小夥伴可以自己嘗試一下。
如果有哪些錯誤或者不好的地方,還請各位大佬指出來,我會虛心接受並修改錯誤,謝謝!

6. python基礎數據結構:序列、映射、集合

參考資料:http://www.cnblogs.com/jeffwongishandsome/archive/2012/08/05/2623660.html

Python中常見的數據結構可以統稱為容器(container)。序列(如列表和元組)、映射(如字典)以及集合(set)是三類主要的容器。

一、序列(列表、元組和字元串)

序列中的每個元素都有自己的編號。Python中有6種內建的序列。其中列表和元組是最常見的類型。其他包括字元串、Unicode字元串、buffer對象和xrange對象。下面重點介紹下列表、元組和字元串。

1、列表

列表是可變的,這是它區別於字元串和元組的最重要的特點,一句話概括即:列表可以修改,而字元串和元組不能。

(1)、創建

通過下面的方式即可創建一個列表:

輸出:

['hello', 'world']

[1, 2, 3]

可以看到,這中創建方式非常類似於javascript中的數組。

(2)、list函數

通過list函數(其實list是一種類型而不是函數)對字元串創建列表非常有效:

輸出:

['h', 'e', 'l', 'l', 'o']

2、元組

元組與列表一樣,也是一種序列,唯一不同的是元組不能被修改(字元串其實也有這種特點)。

(1) 、創建

輸出:

(1, 2, 3) ('jeffreyzhao', 'cnblogs') (1, 2, 3, 4) () (1,)

從上面我們可以分析得出:

a、逗號分隔一些值,元組自動創建完成;

b、元組大部分時候是通過圓括弧括起來的;

c、空元組可以用沒有包含內容的圓括弧來表示;

d、只含一個值的元組,必須加個逗號(,);

(2)、tuple函數

tuple函數和序列的list函數幾乎一樣:以一個序列(注意是序列)作為參數並把它轉換為元組。如果參數就算元組,那麼該參數就會原樣返回:

輸出:

(1, 2, 3)

('j', 'e', 'f', 'f')

(1, 2, 3)

Traceback (most recent call last):

File "F:\Python\test.py", line 7, in

t4=tuple(123)

TypeError: 'int' object is not iterable

3、字元串

(1)創建

輸出:

Hello world

H

H

e

l

l

o

w

o

r

l

d

(2)、格式化

format():

print(『{0} was {1} years old when he wrote this book』. format(name,age) )

print(『{} was {} years old when he wrote this book』. format(name,age) )

print(『{name} was {age} years old when he wrote this book』. format(name=』Lily』,age=』22』) )

#對於浮點數「0.333」保留小數點後三位

print(『{0 : .3f}』.format(1.0/3) )

結果:0.333

#使用下劃線填充文本,並保持文字處於中間位置

#使用^定義『_____hello_____』字元串長度為11

print(『{0 : ^_11}』.format(『hello』) )

結果:_____hello_____

% :

格式化操作符的右操作數可以是任何東西,如果是元組或者映射類型(如字典),那麼字元串格式化將會有所不同。

輸出:

Hello,world

Hello,World

注意:如果需要轉換的元組作為轉換表達式的一部分存在,那麼必須將它用圓括弧括起來:

輸出:

Traceback (most recent call last):

File "F:\Python\test.py", line 2, in

str1='%s,%s' % 'Hello','world'

TypeError: not enough arguments for format string

如果需要輸出%這個特殊字元,毫無疑問,我們會想到轉義,但是Python中正確的處理方式如下:

輸出:100%

對數字進行格式化處理,通常需要控制輸出的寬度和精度:

輸出:

3.14

3.141593

3.14

字元串格式化還包含很多其他豐富的轉換類型,可參考官方文檔。

4、通用序列操作(方法)

從列表、元組以及字元串可以「抽象」出序列的一些公共通用方法(不是你想像中的CRUD),這些操作包括:索引(indexing)、分片(sliceing)、加(adding)、乘(multiplying)以及檢查某個元素是否屬於序列的成員。除此之外,還有計算序列長度、最大最小元素等內置函數。

(1)索引

輸出

H

2

345

索引從0(從左向右)開始,所有序列可通過這種方式進行索引。神奇的是,索引可以從最後一個位置(從右向左)開始,編號是-1:

輸出:

o

3

123

(2)分片

分片操作用來訪問一定范圍內的元素。分片通過冒號相隔的兩個索引來實現:

輸出:

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

[1, 2, 3, 4]

[6, 7, 8, 9]

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

[7, 8]

[7, 8, 9]

不同的步長,有不同的輸出:

輸出:

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

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

[0, 2, 4, 6, 8]

[0, 3, 6, 9]

[]

(3)序列相加

輸出:

Hello world

[1, 2, 3, 2, 3, 4]

Traceback (most recent call last):

File "F:\Python\test.py", line 7, in

print str1+num1

TypeError: cannot concatenate 'str' and 'list' objects

(4)乘法

輸出:

[None, None, None, None, None, None, None, None, None, None]

HelloHello

[1, 2, 1, 2]

Traceback (most recent call last):

File "F:\Python\test.py", line 5, in

print str1*num1

TypeError: can't multiply sequence by non-int of type 'list'

(5)成員資格

in運算符會用來檢查一個對象是否為某個序列(或者其他類型)的成員(即元素):

輸出:

False

True

True

(6)長度、最大最小值

通過內建函數len、max和min可以返回序列中所包含元素的數量、最大和最小元素。

輸出:

5

o

H

5

123

1

二、映射(字典)

映射中的每個元素都有一個名字,如你所知,這個名字專業的名稱叫鍵。字典(也叫散列表)是Python中唯一內建的映射類型。

1、鍵類型

字典的鍵可以是數字、字元串或者是元組,鍵必須唯一。在Python中,數字、字元串和元組都被設計成不可變類型,而常見的列表以及集合(set)都是可變的,所以列表和集合不能作為字典的鍵。鍵可以為任何不可變類型,這正是Python中的字典最強大的地方。

輸出:

{1: 1}

Traceback (most recent call last):

File "F:\Python\test.py", line 6, in

d[list1]="Hello world."

TypeError: unhashable type: 'list'

2、自動添加

即使鍵在字典中並不存在,也可以為它分配一個值,這樣字典就會建立新的項。

3、成員資格

表達式item in d(d為字典)查找的是鍵(containskey),而不是值(containsvalue)。

三、集合

集合(Set)在Python 2.3引入,通常使用較新版Python可直接創建,如下所示:

strs=set(['jeff','wong','cnblogs'])

nums=set(range(10))

看上去,集合就是由序列(或者其他可迭代的對象)構建的。集合的幾個重要特點和方法如下:

1、副本是被忽略的

集合主要用於檢查成員資格,因此副本是被忽略的,如下示例所示,輸出的集合內容是一樣的。

輸出如下:

set([0, 1, 2, 3, 4, 5])

set([0, 1, 2, 3, 4, 5])

2、集合元素的順序是隨意的

這一點和字典非常像,可以簡單理解集合為沒有value的字典。

輸出如下:

set(['wong', 'cnblogs', 'jeff'])

3、集合常用方法

a、並集union

輸出:

set([1, 2, 3])

set([2, 3, 4])

set([1, 2, 3, 4])

union操作返回兩個集合的並集,不改變原有集合。使用按位與(OR)運算符「|」可以得到一樣的結果:

輸出和上面union操作一模一樣的結果。

其他常見操作包括&(交集),<=,>=,-,()等等,這里不再列舉。

輸出如下:

set([1, 2, 3])

set([2, 3, 4])

set([2, 3])

True

set([1, 2, 3])

False

b、add和remove

和序列添加和移除的方法非常類似,可參考官方文檔:

輸出:

set([1])

set([1, 2])

set([1])

set([1])

False

Traceback (most recent call last):

File "F:\Python\test.py", line 9, in

set1.remove(29) #移除不存在的項

KeyError: 29

4、frozenset

集合是可變的,所以不能用做字典的鍵。集合本身只能包含不可變值,所以也就不能包含其他集合:

輸出如下:

Traceback (most recent call last):

File "F:\Python\test.py", line 3, in

set1.add(set2)

TypeError: unhashable type: 'set'

可以使用frozenset類型用於代表不可變(可散列)的集合:

輸出:

set([1, frozenset([2])])

7. python之序列

Python 中的序列是一塊可存放多個值的連續內存空間,所有值按一定順序排列,每個值所在位置都有一個編號,稱其為索引,我們可以通過索引訪問其對應值。

其實字元串就是序列結構,除此之外常見的序列結構還包括列表、元組等。

序列索引支持非負數和負數, 索引為非負數弊改,從 0 開始 ,如下所示:

以字元串為例,如下所示:

輸出結果租老判:

從結果來看,我們使用非負數索引與負數索引得到的結果一致。

切片操作可以訪問一定范圍內的元素,語法如下所示:

以字元串為例,如下所示:

輸出結果:

Python 支持類型相同的序列使用 + 作相加操作,該操作不會去除重復的元素。以字元串為例,如下所示:

輸出結果:

Python 中,使用數字 n 乘以一個序列會生成新的序列,內容為原來序列被重復 n 次的結果。以字元串為例,如下所示:

輸出結果:

Python 使用 in 關鍵字檢查某元素是否為序列的成員,語法如下:
val in seq

以字元串為例,如下所示:

輸出結果:
True
2.6 內置函數
len()—— 計算序列的長度
max()——找出序列中的最大元素
min()——找出序列中的最小元素
list() ——將序列轉換含檔為列表
str() ——將序列轉換為字元串
sum()——計算元素的和
sorted()——對元素進行排序
enumerate()——將序列組合為一個索引序列,多用在 for 循環中
舉例,如下所示:

輸出結果:

熱點內容
java微信公眾號開發 發布:2024-11-02 04:35:29 瀏覽:586
php對象轉為數組 發布:2024-11-02 04:33:45 瀏覽:719
阿里雲啟動伺服器 發布:2024-11-02 04:31:51 瀏覽:110
數控編譯錯誤802怎麼解決 發布:2024-11-02 04:31:42 瀏覽:320
linux如何安裝驅動 發布:2024-11-02 04:30:18 瀏覽:491
雲伺服器項目實施方案 發布:2024-11-02 04:26:00 瀏覽:246
寫入存儲 發布:2024-11-02 04:20:21 瀏覽:31
JavaString替換 發布:2024-11-02 04:14:29 瀏覽:560
百度查詢腳本 發布:2024-11-02 04:14:22 瀏覽:99
陰陽師ios如何登錄安卓 發布:2024-11-02 04:03:03 瀏覽:708