列表
本節繼續討論列表不同元組和字符串的地方:列表是可變的(mutable)----可以改變列表的內容,並且列表有很多有用的、專門的方法。
List函數可以將一個字符串拆分成列表。
>>> list('chongshi') ['c', 'h', 'o', 'n', 'g', 's', 'h', 'i']
改變列表:元素賦值
例如,我們想對一個列表中的某個元素賦值。
>>> x =[1,2,3,4] >>> x[2]=18 >>> x [1, 2, 18, 4]
刪除元素
從列表中刪除元素也很容易,使用dele語句來實現。
>>> names = ['zhangsan','lisi','wangwu','sunliu'] >>> del names[2] >>> names ['zhangsan', 'lisi', 'sunliu']
分片賦值:
>>> name = list('huzi') >>> name ['h', 'u', 'z', 'i'] >>> name[2:]=list('dazhi') >>> name ['h', 'u', 'd', 'a', 'z', 'h', 'i']
name的內容為“huzi” ,從第3個字符(2)開始替換,用“da”替換“zi”並被擴容“zhi”,所以新的name的內容為“hudazhi”。
列表方法
方法是一個與某些對象有緊密聯系的函數,對象可能是列表、數字,也可能是字符串或者其他類型的對象,一般來說,方法可以這樣進行調用:
對象.方法(參數)
方法調用與函數調用很類似。
1、append
append方法用於在列表末尾追加新的對象:
>>> abc = [1,2,3] >>> abc.append(4) >>> abc [1, 2, 3, 4]
2、count
count方法統計某個元素在列表中出現的次數:
>>> ['to','be','or','not','to','be',].count('to') 2 >>> x = [[1,2],1,1,[2,1,[1,2]]] >>> x.count(1) 2 >>> x.count([1,2]) 1
3、extend
extend方法可以在列表的末尾一次性追加另一個序列中的多個值。用新列表擴展原有列表:
>>> a = [1,2,3] >>> b = [4,5,6] >>> a.extend(b) >>> a [1, 2, 3, 4, 5, 6]
4、index
index 方法用於從列表中找出某個值第一個匹配項的。
>>> knights = ['We','are','the','kninghts','who','say','ni'] >>> knights.index('who') 4 >>> knights[4] 'who'
5、insert
insert 方法用於將對象插入到列表中:
>>> numbers = [1,2,3,5,6,7] >>> numbers.insert(3,'four') >>> numbers [1, 2, 3, 'four', 5, 6, 7]
6、pop
pop 方法會移除列表中一個元素(默認是最后一個),並且返回該元素的值:
>>> x = [1,2,3] >>> x.pop() 3 >>> x [1, 2] >>> x.pop(0) 1 >>> x [2]
7、remove
remove 方法用於移除列表中某個值的第一個匹配項:
>>> x = ['to','be','or','not','to','be'] >>> x.remove('be') >>> x ['to', 'or', 'not', 'to', 'be']
8、reverse
revers方法將列表中的元素反向存放
>>> x = [1,2,3] >>> x.reverse() >>> x [3, 2, 1]
9、sort
sort方法用於在原位置對列表進行排序。在“原位置排序”改變原來的列表,從而讓其中的元素能按一定的順序排列。
>>> x = [4,6,2,1,7,9] >>> x.sort() >>> x [1, 2, 4, 6, 7, 9]
元組:不可變序列
元組與列表一樣,也是一種序列。唯一的不同是元組不能改變。創建元組的語法很簡單:如果你用逗號分割了一些值,那么你就自動創建了元組。
>>> 1,2,3 (1, 2, 3) >>> (1,2,3) # 用括號表示元組 (1, 2, 3) >>> () # 空元組 ()
如何實現包含一個值的元組呢?方法有點奇特----必須加逗號,即使只有一個值:
>>> 42, (42,) >>> (42,) (42,) >>> 3 * (20+1) 63 >>> 3 * (20+1,) (21, 21, 21)
tuple 函數
tuple函數的功能與list函數基本上一樣:以一個序列作為參數並把它轉換為元組。
>>> tuple([1,2,3]) (1, 2, 3) >>> tuple('abc') ('a', 'b', 'c') >>> tuple((1,2,3)) (1, 2, 3)