欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python3學(xué)習(xí)筆記之列表方法示例詳解

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

前言

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

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

user = []
user = list()

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

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

# 將元祖轉(zhuǎn)成列表
>>> list(('a','b','c'))
['a', 'b', 'c']

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

>>> users = ['a','b','c','d','e']
# 可以使用整數(shù)來(lái)獲取某個(gè)元素
>>> users[0]
'a'
# 可以使用負(fù)整數(shù)來(lái)表示從尾部獲取某個(gè)元素
>>> users[-1]
'e'

# 數(shù)組越界會(huì)報(bào)錯(cuò)
>>> 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

# 修改某個(gè)元素
>>> users[0] = 'wdd'
>>> users
['wdd', 'b', 'c', 'd', 'e']
>>> 

4 列表切片與提取元素

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

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

>>> users
['wdd', 'b', 'c', 'd', 'e']
# 正常截取 注意這里并不會(huì)截取到users[2]
>>> users[0:2]
['wdd', 'b']
# 也可從尾部截取
>>> users[0:-2]
['wdd', 'b', 'c']
# 這樣可以獲取所有的元素
>>> users[:]
['wdd', 'b', 'c', 'd', 'e']
# 也可以加上步長(zhǎng)參數(shù)
>>> users[0:4:2]
['wdd', 'c']
# 也可以通過(guò)這種方式去將列表取反
>>> users[::-1]
['e', 'd', 'c', 'b', 'wdd']

# 注意切片時(shí),偏移量可以越界,越界之后不會(huì)報(bào)錯(cuò),仍然按照界限來(lái)處理 例如開始偏移量如果小于0,那么仍然會(huì)按照0去計(jì)算。
>>> 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)

這兩個(gè)方法都會(huì)直接修改原列表

>>> 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也不存在越界的問(wèn)題,偏移量正負(fù)都行,越界之后會(huì)自動(dòng)伸縮到界限之內(nèi),并不會(huì)報(bào)錯(cuò)

>>> 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刪除某個(gè)元素

形式如:del list[offset]

del是python的語(yǔ)句,而不是列表的方法,del刪除不存在的元素時(shí),也會(huì)提示越界

>>> 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']
# 刪除不存在的值會(huì)報(bào)錯(cuò)
>>> users.remove('alsdkfjalsdf')
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
# 如果該值存在多個(gè),那么只能刪除到第一個(gè)
>>> users.remove('haha')
>>> users
['xiaoxiao', 'wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha', '-xiaoxiao']

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

形式如:list.pop(offset=-1) 偏移量默認(rèn)等于-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時(shí)會(huì)報(bào)錯(cuò)
>>> 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']
# 越界時(shí)也會(huì)報(bào)錯(cuò)
>>> 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只會(huì)返回第一遇到該值得位置
>>> users
['wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha']
>>> users.index('heihei')
5

# 如果該值不存在,也會(huì)報(bào)錯(cuò)
>>> 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()將列表轉(zhuǎn)為字符串

形式如: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']
# 默認(rèn)是升序排序
>>> 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']

# 通過(guò)匿名函數(shù),傳入函數(shù)進(jìn)行自定義排序
>>> 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()將列表翻轉(zhuǎn)

形式如: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()復(fù)制列表

形式如:list2 = list1.copy()

list2 = list1 這種并不是列表的復(fù)制,只是給列表起了別名。實(shí)際上還是指向同一個(gè)值。

>>> 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()獲取列表長(zhǎng)度

形式如:len(list)

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

20 關(guān)于列表越界的深入思考

寫了這些方法后,我有一些疑問(wèn),為什么有些操作會(huì)提示越界,有些則不會(huì)呢?

會(huì)提示偏移量越界的操作有

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

如果偏移量越界,這些方法會(huì)報(bào)錯(cuò)的。我的個(gè)人理解是:

假如我想讀取偏移量為10的元素,但是該元素并不存在,如果系統(tǒng)自動(dòng)給你讀取了列表的最后一個(gè)元素,而且不報(bào)錯(cuò),這是無(wú)法容忍的bug。 如果我想刪除第10個(gè)元素,但是第10個(gè)元素并不存在,而系統(tǒng)幫你刪除了列表的最后一個(gè)元素,我覺得這也是無(wú)法容忍的。

所以在使用這些方法時(shí),務(wù)必確認(rèn)該偏移量的元素是否存,否則可能會(huì)報(bào)錯(cuò)。

總結(jié)

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

相關(guān)文章

  • python批處理將圖片進(jìn)行放大實(shí)例代碼

    python批處理將圖片進(jìn)行放大實(shí)例代碼

    最近處理一些規(guī)格不一的照片,需要修改成指定尺寸便于打印,下面這篇文章主要給大家介紹了關(guān)于python批處理將圖片進(jìn)行放大的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-12-12
  • 詳細(xì)過(guò)程帶你用Python做車牌自動(dòng)識(shí)別系統(tǒng)

    詳細(xì)過(guò)程帶你用Python做車牌自動(dòng)識(shí)別系統(tǒng)

    這篇文章主要介紹了帶你用Python做車牌自動(dòng)識(shí)別系統(tǒng)的詳細(xì)過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • 利用selenium 3.7和python3添加cookie模擬登陸的實(shí)現(xiàn)

    利用selenium 3.7和python3添加cookie模擬登陸的實(shí)現(xiàn)

    這篇文章主要給大家介紹了關(guān)于利用selenium 3.7和python3添加cookie模擬登陸的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • Python創(chuàng)建7種不同的文件格式的方法總結(jié)

    Python創(chuàng)建7種不同的文件格式的方法總結(jié)

    今天的這篇文章呢,小編來(lái)介紹一下如何通過(guò)Python來(lái)創(chuàng)建各種形式的文件,這里包括了:文本文件、CSV文件、Excel文件、壓縮文件、XML文件、JSON文件和PDF文件,需要的可以參考一下
    2023-01-01
  • Python中的hypot()方法使用簡(jiǎn)介

    Python中的hypot()方法使用簡(jiǎn)介

    這篇文章主要介紹了Python中的hypot()方法使用簡(jiǎn)介,是Python入門所需掌握的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • python中from module import * 的一個(gè)坑

    python中from module import * 的一個(gè)坑

    from module import *把module中的成員全部導(dǎo)到了當(dāng)前的global namespace,訪問(wèn)起來(lái)就比較方便了。當(dāng)然,python style一般不建議這么做,因?yàn)榭赡芤餹ame conflict。
    2014-07-07
  • Python異步爬蟲實(shí)現(xiàn)原理與知識(shí)總結(jié)

    Python異步爬蟲實(shí)現(xiàn)原理與知識(shí)總結(jié)

    之前有很多小伙伴想看Python異步爬蟲的有關(guān)知識(shí)總結(jié),這次它來(lái)了,文中有非常詳細(xì)的代碼示例與注釋,即使對(duì)剛開始學(xué)python的小伙伴也很友好,,需要的朋友可以參考下
    2021-05-05
  • python模擬實(shí)現(xiàn)分發(fā)撲克牌

    python模擬實(shí)現(xiàn)分發(fā)撲克牌

    這篇文章主要為大家詳細(xì)介紹了python模擬實(shí)現(xiàn)分發(fā)撲克牌,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 用python搭建一個(gè)花卉識(shí)別系統(tǒng)

    用python搭建一個(gè)花卉識(shí)別系統(tǒng)

    這學(xué)期修了一門機(jī)器視覺的選修課,課設(shè)要是弄一個(gè)花卉識(shí)別的神經(jīng)網(wǎng)絡(luò),所以我網(wǎng)上找了開源代碼進(jìn)行了修改,最后成功跑起來(lái),結(jié)果只有一個(gè)準(zhǔn)確率(94%)既然都跑了這個(gè)神經(jīng)網(wǎng)絡(luò)的代碼,那么干脆就把這個(gè)神經(jīng)網(wǎng)絡(luò)真正的使用起來(lái),把這個(gè)神經(jīng)網(wǎng)絡(luò)弄成一個(gè)可視化界面
    2021-06-06
  • python 實(shí)現(xiàn)視頻 圖像幀提取

    python 實(shí)現(xiàn)視頻 圖像幀提取

    今天小編就為大家分享一篇python 實(shí)現(xiàn)視頻 圖像幀提取,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12

最新評(píng)論