1、序列的索引從頭位置以0開始計數,也可以從後面倒著計數,倒數第乙個元素的索引為-1,倒數第二個元素的索引為-2,以此類推。
2、python包括6種內建的序列:列表、元組、字串、unicode字串、buffer物件和xrange物件。
3、列表可以修改,元組不能修改,幾乎所有的情況下列表都可以代替元組,除了使用元組作為字典的鍵。
4、列表用[ ]包裝,可以用列表表示資料庫中乙個人的資訊,如下
>>> edward = ['edward gumby',42]
>>> john = ['john smith', 50]
>>> database = [edward, john]
>>> database
[['edward gumby', 42], ['john smith', 50]]
5、所有序列型別可進行的操作:索引、分片、加、乘以及檢查是否屬於序列的成員(成員資格),以及計算序列長度、找出最大元素和最小元素的內建函式。示例如下:
(1)索引
>>> greeting[0]
'h'>>> greeting[-1]
'o'直接對返回結果進行索引操作
>>> result=input('year: ')[3]
year: 2014
>>> result
'4'(2)分片
>>> tag = ''
>>> tag[0:3]
'htt'
0:從第乙個元素開始訪問,3:最後乙個分片元素的下乙個位置,不包含在分片內
>>> tag[-3:-1]
'or'
注意:分片的索引,只要左邊的索引比右邊的晚出現在序列中,結果就是乙個空的序列。
右邊的索引值可以為空,如
>>> tag[-3:]
'org'
>>> tag[3:]
'p:'
>>> tag[:3]
'htt'
>>>
如果需要複製整個序列
>>> tag[:]
''指出步長,以下是每隔2個元素訪問陣列,其中最後乙個2表示步長
>>> array = [1,2,3,4,5,6,7,8,9,10]
>>> array[1:10:2]
[2, 4, 6, 8, 10]
當步長為負數時,分片從右到左提取元素,
>>> array[8:3:-1]
[9, 8, 7, 6, 5]
其他》 array[0:10:-2]
>>> array[::-2]
[10, 8, 6, 4, 2]
>>> array[5::-2]
[6, 4, 2]
>>> array[:5:-2]
[10, 8]
(3)序列相加
>>> [1,2,3] + [4,5,6]
[1, 2, 3, 4, 5, 6]
>>> 'hello,'+'world'
'hello,world'
(4)序列相乘
>>> 5*'#python'
'#python#python#python#python#python'
>>> [3] * 10
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
設定長度為10的空序列(none)
>>> null_sequence = [none]*10
>>> null_sequence
[none, none, none, none, none, none, none, none, none, none]
(5)成員資格
>>> test = 'rw'
>>> 'r' in test
true
>>> users = ['aaa', 'bbb', 'ccc']
>>> 'ddd' in users
false
檢查使用者名稱和pin碼
>>> #check username and pin
>>> database = [
['albert','1234'],['dilbert','4242'],['smith','5412'],['jones','9843']
]>>> username = input('username: ')
username: smith
>>> pin= input("pin: ")
pin: 5412
>>> if[username,pin] in database: print ('access granted')
access granted
(6)序列長度,最大值元素,最小值元素
>>> number = [11,22,33]
>>> len(number)
3>>> max(number)
33>>> min(number)
116、list函式。因為字串不能像列表一樣被修改,有時需要根據字串建立列表
>>> list('hello')
['h', 'e', 'l', 'l', 'o']
7、基本的列表操作
(1)修改元素
>>> arr= [0,0,0]
>>> arr[1] = 1
>>> arr
[0, 1, 0]
(2)刪除元素
>>> del arr[0]
>>> arr
[1, 0]
(3)分片賦值
>>> name = list('pythxx')
>>> name
['p', 'y', 't', 'h', 'x', 'x']
>>> name[-2:]=list('on')
>>> name
['p', 'y', 't', 'h', 'o', 'n']
插入》 numbers = [1,5]
>>> numbers[1:1]=[2,3,4]
>>> numbers
[1, 2, 3, 4, 5]
8、列表方法
(2)count
>>> numbers.count(4)
1(3)extend,效率比連線符 +效率要高
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]
(4)index
>>> a
[1, 2, 3, 4, 5, 6]
>>> a.index(4)
3(5)insert, 將物件插入列表中
>>> a.insert(1,'test')
>>> a
[1, 'test', 2, 3, 4, 5, 6]
(6)pop,一般彈出最後乙個元素
>>> a.pop()
6(7)remove,移除列表中第乙個匹配的元素
>>> a
[1, 'test', 2, 3, 4, 5]
>>> a.remove('test')
>>> a
[1, 2, 3, 4, 5]
(8)reverse。反轉列表
>>> a
[1, 2, 3, 4, 5]
>>> a.reverse
>>> a.reverse()
>>> a
[5, 4, 3, 2, 1]
(9)sort。排序,預設是公升序排序
>>> a
[5, 4, 3, 2, 1]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5]
如果要複製到另乙個列表去排序,可以採用以下方法 y=x[:]
>>> x = [5,4,3,2,1]
>>> x
[5, 4, 3, 2, 1]
>>> y = x[:]
>>> y
[5, 4, 3, 2, 1]
>>> y.sort()
>>> y
[1, 2, 3, 4, 5]
>>> x
[5, 4, 3, 2, 1]
或者》 x
[5, 4, 3, 2, 1]
>>> y=sorted(x)
>>> y
[1, 2, 3, 4, 5]
>>> x
[5, 4, 3, 2, 1]
注:sorted可以對任何序列排序,總是返回乙個列表
10、高階排序
>>> x = [4,6,2,1,7,9]
>>> x.sort(reverse=true)
>>> x
[9, 7, 6, 4, 2, 1]
按key的長度排序
>>> strings = ['aaa', 'bb', 'c']
>>> strings.sort(key=len)
>>> strings
['c', 'bb', 'aaa']
9、元組:不可變序列,用()包裝
(1)陣列建立比較簡單,但是要注意即使只有乙個元素時候,也需要新增()
>>> 1,2,3
(1, 2, 3)
>>> (1,2,3)
(1, 2, 3)
>>> ()
()>>> 42
42>>> 42,
(42,)
>>> (42,)
(42,)
注意:>>> 3*(2+2)
12>>> 3*(2+2,)
(4, 4, 4)
(2)tuple函式,跟list()函式功能相似,將乙個序列作為引數並把它轉換為元組, 如果引數是元組,則原樣返回。
>>> tuple([1,2,3])
(1, 2, 3)
>>> tuple((1,2,3))
(1, 2, 3)
python學習筆記(二)列表和元組
一 列 式 列表也可稱為陣列,與c語言中的陣列一樣,列表也是由和,組成,如 mumber 1,2,3,4,5 這就定義了乙個由五個整形組成的乙個列表。但是,python的列表不會如此簡單,它可以說是乙個大雜燴,為何這樣說呢?member jacyn 1,2,3.00,1,2,3 這樣乙個包含了字串,...
Python (二)列表 元組
一 列表 相當於c中的陣列,內部的元素是可以改變的,對元素進行增刪改以及進行插入操作。是一種有序的集合 建立list list1 test1 test2 test3 訪問元素 通過下標進行索引 list1 2 列表的下標從0開始,在元素的個數減1的位置結束。末尾追加元素 指定位置插入元素 listt...
python程式設計學習筆記列表 二 列表和元組
2.1 序列概覽 python包含6種內建的序列 列表 元組 字串 unicode字串 buffer物件和 xrange物件。容器 序列,對映和集合 set 2.2 通用序列操作 索引 indexing 分片 sliceing 加 adding 乘 multiplying 檢查某個元素是否屬於序列的...