前面已經跟大家講了python的數據類型,但是沒有深入去講,這一節我們深入瞭解python數據類型的使用 列表數據類型有很多方法,我們在這裡一一跟大家介紹 1.append 方法append用於將一個對象附加到列表末尾。 例如以下代碼 註意append和其他方法一樣,只修改列表,不返回值 2.cle ...
前面已經跟大家講了python的數據類型,但是沒有深入去講,這一節我們深入瞭解python數據類型的使用
列表數據類型有很多方法,我們在這裡一一跟大家介紹
1.append
方法append用於將一個對象附加到列表末尾。
例如以下代碼
In [1]: my_list = [1, 2, 3, 4] In [2]: my_list.append(5) In [3]: my_list Out[3]: [1, 2, 3, 4, 5]
註意append和其他方法一樣,只修改列表,不返回值
2.clear
方法clear就地清空列表的內容
例如以下代碼
In [4]: my_list = [1, 2, 3, 4] In [5]: my_list.clear() In [6]: my_list Out[6]: []
通過切片也能實現這個功能
In [7]: my_list = [1, 2, 3, 4] In [8]: my_list[:] = [] In [9]: my_list Out[9]: []
3.copy
copy用於複製列表,但要註意,他只是將一個變數關聯到這個列表
下麵只是通過賦值實現簡單的複製
In [10]: my_list = [1, 2, 3, 4] In [11]: other_list = my_list In [12]: other_list Out[12]: [1, 2, 3, 4]
要讓my_list和other_list指向不同的列表,就必須用到copy
例如以下代碼
In [15]: my_list = [1, 2, 3, 4] In [16]: other_list = my_list.copy() In [17]: other_list Out[17]: [1, 2, 3, 4] In [18]: other_list[0] = 'one' In [19]: other_list Out[19]: ['one', 2, 3, 4] In [20]: my_list Out[20]: [1, 2, 3, 4]
可以看出兩個列表指向的不是同一個記憶體地址
4.count
計算指定的元素在列表中出現了多少次
In [21]: word_list = ['to', 'be', 'or', 'not', 'to', 'be'] In [22]: word_list.count('to') Out[22]: 2
註意,對於多維列表,情況會有點不同
In [23]: multi_list = [1, [1, 2], 1, [1, 2 ,3]] In [24]: multi_list.count(1) Out[24]: 2 In [25]: multi_list.count([1,2]) Out[25]: 1
5.extend
可以將多個值附加到列表末尾,也就是說可以將兩個列表連接,或者是說你可使用一個列表去擴展另一個列表
In [26]: a_list = [1, 2] In [27]: b_list = [3, 4] In [28]: a_list.extend(b_list) In [29]: a_list Out[29]: [1, 2, 3, 4]
這看起來有點像下麵這幾行代碼,將兩個列表連接
In [30]: a_list = [1, 2] In [31]: b_list = [3, 4] In [32]: a_list + b_list Out[32]: [1, 2, 3, 4]
但是要註意的是這裡並不能直接把結果賦值
除了使用上面的extend方法外,我們還可以使用切片操作
In [39]: a_list = [1, 2] In [40]: b_list = [3, 4] In [41]: a_list[len(a_list):] = b_list In [42]: a_list Out[42]: [1, 2, 3, 4]
但不得不說可讀性太差了
6.index
方法index在列表中查找指定值第一次出現的索引
例如以下代碼
In [43]: my_list = [1, 2, 'susmote', 'ayesup', 'ayesup', 'susmote', 2, 1] In [44]: my_list.index('susmote') Out[44]: 2
在這裡要強調一下,index只是查找出第一次出現的索引
7.insert
方法insert用於將一個對象插入列表
例如以下代碼
In [46]: my_list = [1, 2, 3, 4, 6] In [47]: my_list.insert(4, 5) In [48]: my_list Out[48]: [1, 2, 3, 4, 5, 6]
註意第一個參數是索引,第二是插入的值,插入的值在索引的前面
也可以使用切片完成以上操作
In [51]: my_list = [1, 2, 3, 4, 6] In [52]: my_list[4:4] = [5] In [53]: my_list Out[53]: [1, 2, 3, 4, 5, 6]
8.pop
刪除一個元素,預設為最後一個元素,最後會返回這個元素
例如以下代碼
In [54]: my_list = [1, 2, 3, 4, 5] In [55]: my_list.pop() Out[55]: 5 In [56]: my_list Out[56]: [1, 2, 3, 4] In [57]: my_list.pop(0) Out[57]: 1 In [58]: my_list Out[58]: [2, 3, 4]
pop是唯一既修改列表又返回一個非None值的列表方法。
使用pop可實現一種常見的數據結構——棧(stack),這個在後面的文章中的我會講到,這裡不做詳細說明
9.remove
刪除第一個為指定值的元素
例如以下代碼
In [59]: word_list = ['to', 'be', 'or', 'not', 'to', 'be'] In [60]: word_list.remove('to') In [61]: word_list Out[61]: ['be', 'or', 'not', 'to', 'be']
10.reverse
方法reverse按相反的順序排列列表中的元素
In [62]: my_list = [1, 2, 3, 4, 5] In [63]: my_list.reverse() In [64]: my_list Out[64]: [5, 4, 3, 2, 1]
如果要按相反的順序迭代序列,可使用函數reversed。這個函數不返回列表,而是返回 一個迭代器(迭代器將在第9章詳細介紹)。你可使用list將返回的對象轉換為列表。
例如以下代碼
In [65]: my_list = [1, 2, 3, 4, 5] In [66]: list(reversed(my_list)) Out[66]: [5, 4, 3, 2, 1]
11.sort
方法sort用於對列表就地排序,但並不返回值
例如
In [68]: my_list = [ 7, 4, 3, 5, 8, 9, 1] In [69]: my_list.sort() In [70]: my_list Out[70]: [1, 3, 4, 5, 7, 8, 9]
由於沒有返回值,所以如果需要方便的將排序的值賦給一個變數,可以使用函數sorted
In [71]: my_list = [ 7, 4, 3, 5, 8, 9, 1] In [72]: other_list = sorted(my_list) In [73]: my_list Out[73]: [7, 4, 3, 5, 8, 9, 1] In [74]: other_list Out[74]: [1, 3, 4, 5, 7, 8, 9]
註意,對於sort他是有兩個可選參數的:key 和 reverse
key代表你排序依照的關鍵字
reverse指出是否要按相反的順序對列表進行排序, True 或者 False
例如下麵兩段代碼
key = len
In [75]: word_list = ['aardvark', 'abalone', 'acme', 'add', 'aerate'] In [76]: word_list.sort(key=len) In [77]: word_list Out[77]: ['add', 'acme', 'aerate', 'abalone', 'aardvark']
reverse = True
In [78]: my_list = [ 7, 4, 3, 5, 8, 9, 1] In [79]: my_list.sort(reverse=True) In [80]: my_list Out[80]: [9, 8, 7, 5, 4, 3, 1]
歡迎訪問我的博客網 www.susmote.com