最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2017年10月06日 08:49:02   作者:香吉士  
Python3 列表 序列是Python中最基本的數(shù)據(jù)結構,下面這篇文章主要給大家介紹了關于Python3學習筆記之列表方法的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下。

前言

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

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

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']
# 可以使用整數(shù)來獲取某個元素
>>> users[0]
'a'
# 可以使用負整數(shù)來表示從尾部獲取某個元素
>>> users[-1]
'e'

# 數(shù)組越界會報錯
>>> 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']
# 也可以加上步長參數(shù)
>>> 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也不存在越界的問題,偏移量正負都行,越界之后會自動伸縮到界限之內(nèi),并不會報錯

>>> 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()方式返回某個元素后,并在數(shù)組里刪除它

形式如: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 users
True

13 使用count()記錄特定值出現(xiàn)的次數(shù)

形式如: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']

# 通過匿名函數(shù),傳入函數(shù)進行自定義排序
>>> 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的元素,但是該元素并不存在,如果系統(tǒng)自動給你讀取了列表的最后一個元素,而且不報錯,這是無法容忍的bug。 如果我想刪除第10個元素,但是第10個元素并不存在,而系統(tǒng)幫你刪除了列表的最后一個元素,我覺得這也是無法容忍的。

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

總結

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

相關文章

  • 探究數(shù)組排序提升Python程序的循環(huán)的運行效率的原因

    探究數(shù)組排序提升Python程序的循環(huán)的運行效率的原因

    這篇文章主要介紹了探究數(shù)組排序提升Python程序的循環(huán)的運行效率的原因,作者用代碼實踐了多個小片段來進行對比解釋,需要的朋友可以參考下
    2015-04-04
  • 14 個Python小游戲 源碼分享

    14 個Python小游戲 源碼分享

    今天給大家?guī)?4個py小游戲如:吃金幣、打乒乓、滑雪、并夕夕版飛機大戰(zhàn)、打地鼠、小恐龍、消消樂、俄羅斯方塊、貪吃蛇、24點小游戲、平衡木、外星人入侵、貪心鳥、井字棋888‘’,文章都帶了源碼,感興趣的小伙伴感快收藏起來吧
    2021-09-09
  • Pytorch使用卷積神經(jīng)網(wǎng)絡對CIFAR10圖片進行分類方式

    Pytorch使用卷積神經(jīng)網(wǎng)絡對CIFAR10圖片進行分類方式

    這篇文章主要介紹了Pytorch使用卷積神經(jīng)網(wǎng)絡對CIFAR10圖片進行分類方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python實現(xiàn)繪制置信區(qū)間

    Python實現(xiàn)繪制置信區(qū)間

    置信區(qū)間是從觀測數(shù)據(jù)的統(tǒng)計量計算的一種估計值,它給出了一個可能包含具有特定置信水平的總體參數(shù)的值范圍,下面我們就來看看如何使用Python繪制置信區(qū)間吧
    2024-02-02
  • 用Python自動清理系統(tǒng)垃圾的實現(xiàn)

    用Python自動清理系統(tǒng)垃圾的實現(xiàn)

    這篇文章主要介紹了用Python自動清理系統(tǒng)垃圾的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • 跟老齊學Python之大話題小函數(shù)(2)

    跟老齊學Python之大話題小函數(shù)(2)

    上篇文章我們講訴了map 和lambda函數(shù)的使用,本文我們繼續(xù)來看看reduce和filter函數(shù),有需要的朋友可以參考下
    2014-10-10
  • python2.7刪除文件夾和刪除文件代碼實例

    python2.7刪除文件夾和刪除文件代碼實例

    python刪除文件夾t和刪除文件代碼實例,大家參考使用吧,運行環(huán)境是python2.7
    2013-12-12
  • Python必備shelve與dbm本地持久化存儲數(shù)據(jù)的兩個強大工具

    Python必備shelve與dbm本地持久化存儲數(shù)據(jù)的兩個強大工具

    當涉及存儲大量數(shù)據(jù)并且需要高效訪問時,shelve和dbm模塊是Python中用于本地持久化存儲數(shù)據(jù)的兩個強大工具,它們允許開發(fā)人員以鍵值對的形式存儲數(shù)據(jù),并支持快速的檢索和更新操作,在本文將深入探討這兩個模塊,展示它們的優(yōu)勢和應用場景
    2024-01-01
  • Python如何獲取模塊中類以及類的屬性方法信息

    Python如何獲取模塊中類以及類的屬性方法信息

    python對屬性權限的控制是通過屬性名來實現(xiàn)的,下面這篇文章主要給大家介紹了關于Python如何獲取模塊中類以及類的屬性方法信息的相關資料,需要的朋友可以參考下
    2021-12-12
  • Python Websocket服務端通信的使用示例

    Python Websocket服務端通信的使用示例

    這篇文章主要介紹了Python Websocket服務端通信的使用示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02

最新評論

潮安县| 喀喇沁旗| 远安县| 元谋县| 平陆县| 家居| 蓬安县| 井冈山市| 萍乡市| 资阳市| 郎溪县| 泽州县| 巴林右旗| 梧州市| 寻乌县| 霍邱县| 富源县| 鸡东县| 阳春市| 迁西县| 安顺市| 会东县| 达尔| 上犹县| 铁岭市| 东宁县| 运城市| 东乌珠穆沁旗| 谢通门县| 资兴市| 华池县| 镇沅| 繁昌县| 抚宁县| 子长县| 寿光市| 晋中市| 城口县| 公安县| 丹棱县| 宣化县|