python包含6種內建的序列:列表、元組、字串 、unicode字串、buffer物件、xrange物件。在序列中的每個元素都有自己的編號。列表與元組的區別在於,列表是可以修改,而組元不可修改。理論上幾乎所有情況下元組都可以用列表來代替。有個例外是但元組作為字典的鍵時,在這種情況下,因為鍵不可修改,所以就不能使用列表。
我們先來編寫乙個列表:
使用方括號括起來,列表元素使用逗號進行分隔:
>>> a = ["hello",100]
>>> a
['hello', 100]
>>>
序列是可以巢狀的:
>>> a =["xiaoming",98]
>>> b =["xiaohong",87]
>>> grade=[a,b]
>>> grade
[['xiaoming', 98], ['xiaohong', 87]]
>>>
下面來介紹一下通用的序列操作。
所有序列都可以進行如下操作:
並且python提供了一些序列內建函式:
另外序列操作還有迭代,這個以後介紹。
下面就這些操作做乙個介紹
索引即標號,及元素在序列中的編號。這些編號從0開始遞增,0表示第乙個元素:
>>> world = "hello word"
>>> world[0]
'h'>>> world[3] #第四個元素
'l'>>>
用法就如c語言的陣列一樣。在python中比較神奇的是,索引可以是負數:使用負數時,python會從右邊向左邊計數,最後乙個元素的索引值為-1,為啥不是-0呢?因為會和第乙個元素重合:
>>> world = "hello word"
>>> world[0]
'h'>>> world[3]
'l'>>> world[-1]#從右邊開始計數
'd'>>> world[-2]
'r'>>>
字串字面值可以直接使用索引,不需要定義乙個變數來引用這個字串字面值,這和c語言不一樣:
>>> "hello word"[1]
'e'>>>
有一些函式的返回值為字串,有的返回其他的序列,我們可以在函式呼叫之後使用來對返回序列的元素值進行索引。
>>> input("input something:")[1]
input something:hello word
'e'>>>
在這個例子中我們使用序列來儲存12個月份的單詞字串與每月天數的數字字尾。程式的目的是輸入年月日後進行序列索引查詢對應的單詞並輸出結果:
>>>
year:2015
month:9
day:4
4th september 2015
>>>
程式清單1
months =[
'january',
'february',
'march',
'april',
'may',
'june',
'july',
'august',
'september',
'octber',
'november',
'december',
]endings=['st','nd','rd']+17*['th']\
+['st','nd','rd']+7*['th']\
+['st']
year = input('year:')
month = input('month:')
day = input('day:')
print(day+endings[int(day)-1]+' '+months[int(month)-1]+' ' +year)
注意點:
>>> a = 5*['a','b']
>>> a
['a', 'b', 'a', 'b', 'a', 'b', 'a', 'b', 'a', 'b']
>>>
分片即提取乙個範圍內的序列,語法是:
序列名(或字串字面值)[a:b] 提取索引a~b範圍內的子串行。
>>> number=[1,2,3,4,5,6,7,8,9,10]
>>> number[1:5]
[2, 3, 4, 5]
>>>
注意點:
>>> number[0:19]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>>
>>> number[-3:1]
>>>
>>> number[0:]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>>
>>> number[:10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>>
>>> number[:]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>>
分片的步長指的是,在分片索引標記的範圍內,多長的距離取樣乙個值構成分配。在上面展示的**中,步長都是為1的,也即範圍內所有元素都被取樣。我們可以設定分片步長:
number[a?️l] l即步長
>>> number[0:10:2]
[1, 3, 5, 7, 9]
>>>
注意:
序列相加就簡單了。不羅嗦了。
>>> num1=[1,2,3,4,5]
>>> num2=[6,7,8,9,10]
>>> num3=num1+num2
>>> num3
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>>
序列相乘其實在上面說過了,用數字x乘以乙個序列會產生新的序列,在新的序列中,原來的序列將被重複x次。
>>> 'python'*5
'pythonpythonpythonpythonpython'
>>>
>>> world=["hello "]
>>> world2=5*world
>>> world
['hello ']
>>> world2
['hello ', 'hello ', 'hello ', 'hello ', 'hello ']
>>>
none是python的內建值。它的確切含義是「什麼也沒有」,我們如果要初始化乙個長度為10的列表,而不在列表中放實際內容,就可以使用node:
>>> sequence = 10*[none]
>>> sequence
[none, none, none, none, none, none, none, none, none, none]
>>>
成員資格指某值是否在序列中,使用in運算子,運算子結果為布林值true 或者 false,語法如下:
'某值' in 序列
>>> number=[1,2,3,4,5,6,7,8,9,10]
>>> 1 in number
true
>>> 11 in number
false
>>>
分別對應三個內建函式:
簡單易用,這裡看一看就明白了:
>>> number = [1,2,3,4,5,6,7,8,9,10]
>>> len(number)
10>>> min(number)
1>>> max(number)
10>>>
對於字串值組成的序列,值大小的比較實用字串的比較規則:
>>> months =[
'january',
'february',
'march',
'april',
'may',
'june',
'july',
'august',
'september',
'octber',
'november',
'december',
]>>> len(months)
12>>> min(months)
'april'
>>> max(months)
'september'
>>>
多謝看完文章,如所記有差錯懇請指出。 Python 序列通用操作介紹
python包含6種內建的序列 列表 元組 字串 unicode字串 buffer物件 xrange物件。在序列中的每個元素都有自己的編號。列表與元組的區別在於,列表是可以修改,而組元不可修改。理論上幾乎所有情況下元組都可以用列表來代替。有個例外是但元組作為字典的鍵時,在這種情況下,因為鍵不可修改,...
python通用序列操作 python序列的使用
序列之通用操作 pytho中,最基本的資料結構就是序列。什麼是序列 numbers 1,2,3,4,5,6,7,8,9,0 greeting u hello,world names alice tom ben john python內建序列種類 共有6種 列表,元組,字串,unicode字串,buf...
python通用序列操作 序列的幾個通用操作介紹
sequence 是 python 的一種內建型別 built in type 內建型別就是構建在 python interpreter 裡面的型別,幾個基本的 sequence type 比如 list 表 tuple 定值表,或翻譯為元組 range 範圍 可以看作是 python interp...