可以將列表和元組當成普通的“數組”,他能保存任意數量任意類型的Python對象,和數組一樣都是通過數字0索引訪問元素,列表和元組可以存儲不同類型的對象,列表和元組有幾處重要區別。列表元素用([])包括,元素的個數和值可以改變,而元組用({})包括,不能更改。元組可以看成是只讀的列表一、初識列表1、下...
可以將列表和元組當成普通的“數組”,他能保存任意數量任意類型的Python對象,和數組一樣都是通過數字0索引訪問元素,列表和元組可以存儲不同類型的對象,列表和元組有幾處重要區別。列表元素用([])包括,元素的個數和值可以改變,而元組用({})包括,不能更改。元組可以看成是只讀的列表
一、初識列表
1、下麵是一個正常的列表
>>> lis = ['xiaoyuan',25]
在序列中,可以包含其他的序列,也就是列表可以包含列表元組等
>>> lis = ['xiaoyuan',25]
>>> lis_jo = ['john',30]
>>> date = [lis,lis_jo]
>>> date
[['xiaoyuan', 25], ['john', 30]]註意:Python中還有一種名為容器(container)的數據結構。容器基本上是包含其他對象的任意對象。序列型(例如列表,元組)和映射型(例如字典)。序列中的每個元素都有自己的編號,而映射的每一個元素都有一個名字(也稱為鍵)。後續會介紹,至於不是序列也不是映射的容器類型,例如集合(set),後序介紹
2、序列的通用操作
所有序列類型都可以進行某種特定的操作,這些操作包括:索引(indexing),分片(sliceing),加(adding),乘(multiplying)以及檢查每個元素是否屬於序列的成員(判斷元素是否存在於序列)。還有計算序列的長度,找出最大元素和最小元素的內建函數。以後還有一個重要的操作進行講解,迭代(iteration)。對序列進行迭代的意思。
(1)索引序列中的所有元素都有編號這個編號從0開始遞增:
>>> lis = ['xiaoyuan',25]
>>> lis_jo = ['john',30]
>>> date = [lis,lis_jo]
>>> date
[['xiaoyuan', 25], ['john', 30]]
>>> sta = 'hellow'
>>> sta[0]
'h'
>>> sta[-1]
'w'
>>> date[0]
['xiaoyuan', 25]由此可見【-1】表示最後一個元素
(2)分片
①我們可以使用分片來對一個範圍的元素進行操作
>>> tist = [1,2,3,4,5,6]
>>> new = "abcdefg"
>>> tist[1:3]
[2, 3]
>>> new[0:4]
'abcd'>>> tist[2:] #從第二個元素到最後
[3, 4, 5, 6]②當我們想要從後面取元素怎麼辦?相信大家也知道了就是使用‘ – ’
>>> tist = [1,2,3,4,5,6]
>>>
>>> tist[-3:-1]
[4, 5]
>>> tist[-4:] #這裡也就是從倒數第四個元素到最後
[3, 4, 5, 6]小練習1
我們知道功能變數名稱是由www.xxxx.cn其中分為三個部分.cn為中國,xxxx表示功能變數名稱,www,表示萬維網那麼我們想要取出功能變數名稱怎麼辦呢?
1 >>> url = 'www.aaa.cn' 2 >>> name = url[4:-3] 3 >>> name 4 5 'aaa' 6 7 >>> print 'donaim name:<'+name+'>'+'type:'+url[-2:] 8 donaim name:<aaa>type:cn小練習1③步長,也就是按照步長的長度來取元素,當步長為1的時候就會輸出所以的元素
>>> tist = [1,2,3,4,5,6,7,8,9,10]
>>> tist[0:10:1]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> tist[0:10:2]
[1, 3, 5, 7, 9]如果我們想將元素從頭到最後每個3個元素取出一個那麼只需要這樣即可
>>> tist[::3]
[1, 4, 7, 10]
(4)追加元素 list.append
>>> lis = [1,2,3,4,5,6]
>>> lis.append(7)
>>> lis
[1, 2, 3, 4, 5, 6, 7]
(5)列表刪除元素del list[]
>>> lis
[1, 2, 3, 4, 5, 6, 7]
>>> del lis[0]
>>> lis
[2, 3, 4, 5, 6, 7]
(6)列表長度:len()
>>> len(lis)
6
(7)查找某個元素是否包含:“ 5“ in lis當存在返回True(真)否則為False(假)
>>> 5 in lis
True
>>> 1 in lis
False
(8)將列表變成字元串並定義連接方式 “_”.join(lis)
>>> name_lis = ["a","b","c"]
>>> '_'.join(name_lis)
'a_b_c’
(9)序列相加
>>> [1,2,3]+[4,5,6]
[1, 2, 3, 4, 5, 6]>>> 'hell'+'world!'
'hellworld!'
(10)乘法 *
>>> 'hell'*5
'hellhellhellhellhell'
>>> [1]*5
[1, 1, 1, 1, 1]
(11)list函數,因為字元串不能像列表一樣修改所以,將字元串轉換成列表是就需要使用list(list函數適用於所有類型的序列)
>>> tup = 'asdfghj'
>>> list(tup)
['a', 's', 'd', 'f', 'g', 'h', 'j']
(12)元素賦值
>>> tup = list(tup)
>>> tup
['a', 's', 'd', 'f', 'g', 'h', 'j']
>>> tup[0] = 'A'
>>> tup
['A', 's', 'd', 'f', 'g', 'h', 'j']小練習2:
需求編寫一個歡迎信息,要求格式化成方盒進行輸出,並根據用戶輸入的內容而變換
1 inpot = raw_input("your name:") #歡迎信息 2 text = len(inpot) 3 scr = 17+text #設置一個長度 4 left = (scr) // 2 #設置前方空格的空隙 5 #下方輸出的內容可以根據輸入字元串的長度進行變化 6 print #輸出空 7 print ' ' * left + '+'+ '-'*(scr) + '+' 8 print ' ' * left + '|'+ ' '*scr + '|' 9 print ' ' * left + '|'+'Nice to meet you:' +inpot+ '|' 10 print ' ' * left + '|'+ ' '*scr + '|' 11 print ' ' * left + '+'+ '-'*(scr) + '+'小練習2
二、初識元組
1、下麵是一個正常的元組
>>> name = ('a','b','c')
>>> name
('a', 'b', 'c')元組的基本操作跟列表類似,唯一的區別就是列表可以修改元組不可以修改
當我們查看a是否包含在name_tup元組中可以正常執行,但是想刪除的時候就報錯錯誤為元組對象不支持項刪除
>>> name_tup = ('a','b','c')
>>> 'a' in name_tup
True
>>> del name_tup[0]Traceback (most recent call last):
File "<pyshell#45>", line 1, in <module>
del name_tup[0]
TypeError: 'tuple' object doesn't support item deletion
最後推薦大家使用的編譯器Pycharm