国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python3學習筆記之列表方法示例詳解

2020-01-04 16:33:48
字體:
來源:轉載
供稿:網友

前言

本文主要給大家介紹了關于Python3列表方法的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。

1 使用[]或者list()創建列表

user = []user = list()

2 使用list() 可以將其他類型轉換成列表

# 將字符串轉成列表>>> list('abcde')['a', 'b', 'c', 'd', 'e']# 將元祖轉成列表>>> list(('a','b','c'))['a', 'b', 'c']

3 使用[offset]獲取元素 或 修改元素

>>> users = ['a','b','c','d','e']# 可以使用整數來獲取某個元素>>> users[0]'a'# 可以使用負整數來表示從尾部獲取某個元素>>> users[-1]'e'# 數組越界會報錯>>> users[100]Traceback (most recent call last): File "<stdin>", line 1, in <module>IndexError: list index out of range>>> users[-100]Traceback (most recent call last): File "<stdin>", line 1, in <module>IndexError: list index out of range# 修改某個元素>>> users[0] = 'wdd'>>> users['wdd', 'b', 'c', 'd', 'e']>>> 

4 列表切片與提取元素

列表的切片或者提取之后仍然是一個列表

形式如:list[start:end:step]

>>> users['wdd', 'b', 'c', 'd', 'e']# 正常截取 注意這里并不會截取到users[2]>>> users[0:2]['wdd', 'b']# 也可從尾部截取>>> users[0:-2]['wdd', 'b', 'c']# 這樣可以獲取所有的元素>>> users[:]['wdd', 'b', 'c', 'd', 'e']# 也可以加上步長參數>>> users[0:4:2]['wdd', 'c']# 也可以通過這種方式去將列表取反>>> users[::-1]['e', 'd', 'c', 'b', 'wdd']# 注意切片時,偏移量可以越界,越界之后不會報錯,仍然按照界限來處理 例如開始偏移量如果小于0,那么仍然會按照0去計算。>>> users['wdd', 'b', 'c', 'd', 'e']>>> users[-100:3]['wdd', 'b', 'c']>>> users[-100:100]['wdd', 'b', 'c', 'd', 'e']>>> 

5 使用append()添加元素至尾部

形式如:list.append(item)

>>> users['wdd', 'b', 'c', 'd', 'e']>>> users.append('ddw')>>> users['wdd', 'b', 'c', 'd', 'e', 'ddw']

6 使用extend()或+=合并列表

形式如:list1.extend(list2)

這兩個方法都會直接修改原列表

>>> users['wdd', 'b', 'c', 'd', 'e', 'ddw']>>> names['heihei', 'haha']>>> users.extend(names)>>> users['wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha']>>> users += names>>> users['wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', 'haha']

7 使用insert()在指定位置插入元素

形式如:list.insert(offset, item)

insert也不存在越界的問題,偏移量正負都行,越界之后會自動伸縮到界限之內,并不會報錯

>>> users['wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', 'haha']>>> users.insert(0,'xiaoxiao')>>> users['xiaoxiao', 'wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', 'haha']>>> users.insert(-1,'-xiaoxiao')>>> users['xiaoxiao', 'wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', '-xiaoxiao', 'haha']# 下面-100肯定越界了>>> users.insert(-100,'-xiaoxiao')>>> users['-xiaoxiao', 'xiaoxiao', 'wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', '-xiaoxiao', 'haha']# 下面100也是越界了>>> users.insert(100,'-xiaoxiao')>>> users['-xiaoxiao', 'xiaoxiao', 'wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', '-xiaoxiao', 'haha', '-xiaoxiao']

8 使用del刪除某個元素

形式如:del list[offset]

del是python的語句,而不是列表的方法,del刪除不存在的元素時,也會提示越界

>>> users['-xiaoxiao', 'xiaoxiao', 'wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', '-xiaoxiao', 'haha', '-xiaoxiao']>>> del users[0]>>> users['xiaoxiao', 'wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', '-xiaoxiao', 'haha', '-xiaoxiao']>>> del users[100]Traceback (most recent call last): File "<stdin>", line 1, in <module>IndexError: list assignment index out of range>>> del users[-100]Traceback (most recent call last): File "<stdin>", line 1, in <module>IndexError: list assignment index out of range

9 使用remove刪除具有指定值的元素

形式如:list.remove(value)

>>> users['xiaoxiao', 'wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', '-xiaoxiao', 'haha', '-xiaoxiao']# 刪除指定值'c'>>> users.remove('c')>>> users['xiaoxiao', 'wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', '-xiaoxiao', 'haha', '-xiaoxiao']# 刪除不存在的值會報錯>>> users.remove('alsdkfjalsdf')Traceback (most recent call last): File "<stdin>", line 1, in <module>ValueError: list.remove(x): x not in list# 如果該值存在多個,那么只能刪除到第一個>>> users.remove('haha')>>> users['xiaoxiao', 'wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha', '-xiaoxiao']

10 使用pop()方式返回某個元素后,并在數組里刪除它

形式如:list.pop(offset=-1) 偏移量默認等于-1,也就是刪除最后的元素

>>> users['xiaoxiao', 'wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha', '-xiaoxiao']# 刪除最后的元素>>> users.pop()'-xiaoxiao'>>> users['xiaoxiao', 'wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha']# 如果列表本身就是空的,那么pop時會報錯>>> user.pop(0)Traceback (most recent call last): File "<stdin>", line 1, in <module>IndexError: pop from empty list>>> users.pop(0)'xiaoxiao'>>> users['wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha']# 越界時也會報錯>>> users.pop(100)Traceback (most recent call last): File "<stdin>", line 1, in <module>IndexError: pop index out of range

11 使用index()查詢具有特定值的元素位置

形式如:list.index(value)

# index只會返回第一遇到該值得位置>>> users['wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha']>>> users.index('heihei')5# 如果該值不存在,也會報錯>>> users.index('laksdf')Traceback (most recent call last): File "<stdin>", line 1, in <module>ValueError: 'laksdf' is not in list

12 使用in判斷值是否存在列表

形式如:value in list

>>> users['wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha']>>> 'wdd' in usersTrue

13 使用count()記錄特定值出現的次數

形式如:list.count(value)

>>> users['wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha']>>> users.count('heihei')2>>> users.count('h')0

14 使用join()將列表轉為字符串

形式如:string.join(list)

>>> users['wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha']>>> ','.join(users)'wdd,b,d,e,ddw,heihei,heihei,-xiaoxiao,haha'>>> user[]>>> ','.join(user)''

15 使用sort()重新排列列表元素

形式如:list.sort()

>>> users['wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha']# 默認是升序排序>>> users.sort()>>> users['-xiaoxiao', 'b', 'd', 'ddw', 'e', 'haha', 'heihei', 'heihei', 'wdd']# 加入reverse=True, 可以降序排序>>> users.sort(reverse=True)>>> users['wdd', 'heihei', 'heihei', 'haha', 'e', 'ddw', 'd', 'b', '-xiaoxiao']# 通過匿名函數,傳入函數進行自定義排序>>> students[{'name': 'wdd', 'age': 343}, {'name': 'ddw', 'age': 43}, {'name': 'jik', 'age': 90}]>>> students.sort(key=lambda item: item['age'])>>> students[{'name': 'ddw', 'age': 43}, {'name': 'jik', 'age': 90}, {'name': 'wdd', 'age': 343}]>>> students.sort(key=lambda item: item['age'], reverse=True)>>> students[{'name': 'wdd', 'age': 343}, {'name': 'jik', 'age': 90}, {'name': 'ddw', 'age': 43}]>>> 

16 使用reverse()將列表翻轉

形式如:list.reverse()

>>> users['wdd', 'heihei', 'heihei', 'haha', 'e', 'ddw', 'd', 'b', '-xiaoxiao']>>> users.reverse()>>> users['-xiaoxiao', 'b', 'd', 'ddw', 'e', 'haha', 'heihei', 'heihei', 'wdd']

17 使用copy()復制列表

形式如:list2 = list1.copy()

list2 = list1 這種并不是列表的復制,只是給列表起了別名。實際上還是指向同一個值。

>>> users['-xiaoxiao', 'b', 'd', 'ddw', 'e', 'haha', 'heihei', 'heihei', 'wdd']>>> users2 = users.copy()>>> users2['-xiaoxiao', 'b', 'd', 'ddw', 'e', 'haha', 'heihei', 'heihei', 'wdd']>>> 

18 使用clear()清空列表

形式如: list.clear()

>>> users2['-xiaoxiao', 'b', 'd', 'ddw', 'e', 'haha', 'heihei', 'heihei', 'wdd']>>> users2.clear()>>> users2[]

19 使用len()獲取列表長度

形式如:len(list)

>>> users['-xiaoxiao', 'b', 'd', 'ddw', 'e', 'haha', 'heihei', 'heihei', 'wdd']>>> len(users)9

20 關于列表越界的深入思考

寫了這些方法后,我有一些疑問,為什么有些操作會提示越界,有些則不會呢?

會提示偏移量越界的操作有

  • list[offset] 讀取或者修改某個元素
  • del list[offset] 刪除指定位置的元素
  • list.remove(value) 刪除指定值的元素
  • list.pop(offset) 刪除指定位置的元素

如果偏移量越界,這些方法會報錯的。我的個人理解是:

假如我想讀取偏移量為10的元素,但是該元素并不存在,如果系統自動給你讀取了列表的最后一個元素,而且不報錯,這是無法容忍的bug。 如果我想刪除第10個元素,但是第10個元素并不存在,而系統幫你刪除了列表的最后一個元素,我覺得這也是無法容忍的。

所以在使用這些方法時,務必確認該偏移量的元素是否存,否則可能會報錯。

總結

以上就是這篇文章的全部內容,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 腾冲县| 高密市| 昭觉县| 克什克腾旗| 札达县| 浦北县| 翁牛特旗| 瑞昌市| 于田县| 顺昌县| 徐汇区| 台东市| 衢州市| 巩留县| 天等县| 化州市| 湘乡市| 凤山县| 柳江县| 克山县| 万安县| 宿迁市| 峨眉山市| 家居| 瓮安县| 迁安市| 综艺| 汾西县| 左权县| 大悟县| 曲阳县| 辽宁省| 靖宇县| 德钦县| 嘉峪关市| 延安市| 渑池县| 福海县| 凌海市| 新民市| 永城市|