亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python入門之列表用法詳解

 更新時(shí)間:2022年09月02日 08:20:27   作者:胡安民  
列表是元素的集合,存儲(chǔ)在一個(gè)變量中。這篇文章主要為大家介紹一下Python中列表的定義與使用,文中的示例代碼講解詳細(xì),需要的可以參考一下

列表是什么

列表是元素的集合,存儲(chǔ)在一個(gè)變量中。

列表中存儲(chǔ)的元素類型沒有限制,根據(jù)需要?jiǎng)討B(tài)分配和回收內(nèi)存

列表中的每個(gè)元素都會(huì)分配一個(gè)數(shù)字用來表示它的位置(索引),第一個(gè)索引是 0,第二個(gè)索引是 1,依此類推。

列表的數(shù)據(jù)項(xiàng)不需要具有相同的類型

列表可以存儲(chǔ)重復(fù)數(shù)據(jù)

列表的CRUD

創(chuàng)建列表

創(chuàng)建一個(gè)列表,只要把逗號分隔的不同的數(shù)據(jù)項(xiàng)使用方括號括起來即可。如下所示:

list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]

與字符串的索引一樣,列表索引從 0 開始。列表可以進(jìn)行截取、組合等。

列表中元素的類型的多樣性

a_list=['lemon', 100, ['a', 'b', 'c', 'd'], True]#同一個(gè)list的類型可以是字符串,整型,布爾型(true和false),以及嵌套的lis

訪問列表中的值

使用下標(biāo)索引來訪問列表中的值,同樣你也可以使用方括號的形式截取字符,如下所示:

    list1 = ['physics', 'chemistry', 1997, 2000]
    list2 = [1, 2, 3, 4, 5, 6, 7]
    print("list1[0]: ", list1[0]) # list1[0]:  physics

		# 嵌套列表
    list1 = ['physics', 'chemistry', 1997, 2000,[1,2,3,4,5]]
    print("list1[0]: ", list1[4][0]) # list1[0]:  1
print(a[1:3]) #按下標(biāo)0開始,不包括最右邊的3
print(a[1:]) #1以及之后的全部
print(a[:3]) #3之前的但不包括3
print(a[:]) #所有
print(a[::2])#[start:end:step]start和end為空的時(shí)候,默認(rèn)是全選,step為空時(shí)默認(rèn)是1,這個(gè)表示的是從索引為0開始,以步長為2來選擇元素
print(a[1:3:2])#以索引為1開始,索引3結(jié)束,步長為2來選擇元素
print(a[::-1])#當(dāng)step為-1時(shí),將列表進(jìn)行了逆序排序
print(a[::-2])#將列表進(jìn)行了逆序排序,步長為2來選擇元素

更新列表

修改列表中的元素需要使用索引表示將指定索引位置的元素進(jìn)行重新賦值。

    list1 = ['physics', 'chemistry', 1997, 2000]
    list1[0]= 'maths'
    print("list1[0]: ", list1[0]) # list1[0]:  maths

刪除元素

移除列表中的元素,可以通過 del 語句,通過索引號指定要?jiǎng)h除的元素對象。

    list1 = ['physics', 'chemistry', 1997, 2000]
    del list1[0]
    print("list1[0]: ", list1[0]) # list1[0]:  chemistry

拼接列表

    print('列表相加:', [1, 2, 3] + [4, 5, 6])# 列表相加: [1, 2, 3, 4, 5, 6]

列表相乘

    print('列表相乘:', ['a', 'b']*3) # 列表相乘: ['a', 'b', 'a', 'b', 'a', 'b']

判斷

print('判斷列表元素是否存在于列表中:', 'a' in ['a', 'b']) # True
print('判斷列表元素是否存在于列表中:', 'a' not in['a', 'b']) # Falue

遍歷列表

python 迭代列表中元素,主要有三種方式,具體如下:

第一種方法(直接)

    list1 = ['physics', 'chemistry', 1997, 2000]
    for item in list1:
        print(item)

或者

names = ['james', 'michael', 'emma', 'emily']
index = 0    #通過while循環(huán)來列出所有元素
while index < len(names):
    print(names[index])
    index += 1

第二種方法range

借助 range 和 len 內(nèi)置函數(shù),通過元素索引遍歷列表元素;

    list1 = ['physics', 'chemistry', 1997, 2000]
    for i in range(len(list1)):
        print(i, list1[i])

第三種方法enumerate

通過內(nèi)置枚舉函數(shù) enumerate 直接獲取遍歷的索引和元素;

    list1 = ['physics', 'chemistry', 1997, 2000]
    for i, item in enumerate(list1):
        print(i, item)

列表推導(dǎo)式

列表生成式即List Comprehensions,是Python內(nèi)置的非常簡單卻強(qiáng)大的可以用來創(chuàng)建list的生成式,使用列表生成式可以節(jié)省很多行代碼

語法結(jié)構(gòu)如下:

# 普通的生成式
[表達(dá)式 for 變量 in 舊列表]
# 加條件的生成式
[表達(dá)式 for 變量 in 舊列表 if 條件]
# if...else條件的生成式
[表達(dá)式 if 條件1 else 條件2 for 變量 in 舊列表]

過濾掉名詞字母長度不足4的名字,示例代碼如下:

names = ["Tom", "Lily", "Jack", "Steven", "Bod"]
# 在不是用列表生成式的過程
news_names = []
for name in names:
    if len(name) > 3:
        news_names.append(name)
print(news_names)  # ['Lily', 'Jack', 'Steven']


# 使用列表生成式
new_names = [name for name in names if len(name) > 3]
print(new_names)  # ['Lily', 'Jack', 'Steven']

將1-100的整數(shù)可以被3和5整除的數(shù)字組成一個(gè)新的列表, 示例代碼如下所示:

# 舊方法
number_list = []
for i in range(101):
    if i % 3 == 0 and i % 5 == 0:
        number_list.append(i)
print(number_list)  # [0, 15, 30, 45, 60, 75, 90]
 
 
# 列表生成式
new_num_list = [i for i in range(101) if i % 3 == 0 and i % 5 == 0]
print(new_num_list)  # [0, 15, 30, 45, 60, 75, 90]

將0到10的奇數(shù)和0到5的偶數(shù)組成一個(gè)不重復(fù)的列表,示例代碼如下所示:

# 將0到10的奇數(shù)和0到5的偶數(shù)組成一個(gè)不重復(fù)的列表
# 舊方法
news_number_list = []
for x in range(10):
    if x % 2 != 0:
        for y in range(5):
            if y % 2 == 0:
                news_number_list.append([x, y])
print(news_number_list)
# [[1, 0], [1, 2], [1, 4], [3, 0], [3, 2], [3, 4], [5, 0], [5, 2], [5, 4], [7, 0], [7, 2], [7, 4], [9, 0], [9, 2],[9, 4]]



# 新方法
news_num_list = [[x, y] for x in range(10) if x % 2 != 0 for y in range(6) if y % 2 == 0]
print(news_num_list)
# [[1, 0], [1, 2], [1, 4], [3, 0], [3, 2], [3, 4], [5, 0], [5, 2], [5, 4], [7, 0], [7, 2], [7, 4], [9, 0], [9, 2],[9, 4]]

將列表中的數(shù)字大于8000的加200 小于等于8000的加500,示例代碼如下:

# 將列表中的數(shù)字大于8000的加200 小于等于8000的加500
number = [5000, 10000, 4500, 80000, 12000]
 
# 舊方法
for i in number:
    if i > 8000:
        i += 200
    else:
        i += 500
print(number)  #  [5500, 10200, 5000, 80200, 12200]
 
 
# 新方法
new_number = [i + 200 if i > 8000 else i + 500 for i in number]
print(new_number)  #  [5500, 10200, 5000, 80200, 12200]

列表常用方法

獲取列表長度

len() 方法返回列表元素個(gè)數(shù)。

print(len([1, 2, 3])) # 3

列表后面添加元素

append() 方法用于在列表末尾添加新的對象。

food=['egg', 'fish', 'cake', 'tomato']
food.append('ice') #在list的末尾添加元素
print(food)

指定位置添加元素

insert() 函數(shù)用于將指定對象插入列表。

food=['egg', 'fish', 'cake', 'tomato']
food.insert(1, 'meat') #在1這個(gè)位置添加元素
print(food)

刪除元素

pop() 函數(shù)用于移除列表中的一個(gè)元素(默認(rèn)最后一個(gè)元素),并且返回該元素的值。

food=['egg', 'fish', 'cake', 'tomato']
food.pop() #刪除list末尾的元素
print(food)
food.pop(2) #刪除索引2的元素
print(food)

定義 remove() 方法具有指定值的首個(gè)元素,如果有重復(fù),刪除的是第一次出現(xiàn)的元素,如果元素不存在會(huì)報(bào)錯(cuò)

list2 = [1, 2, 4, 5, 7, 4]
list2.remove(4)#從列表中找出第一個(gè)數(shù)值為4的值然后刪除,不管第二個(gè)
print('remove:', list2)

返回的是某個(gè)元素在列表里面的個(gè)數(shù)

count()方法返回元素出現(xiàn)次數(shù)

fruits = ['apple', 'banana', 'cherry']
number = fruits.count("cherry")
print(number)

合并列表

定義 extend()方法將列表元素(或任何可迭代的元素)添加到當(dāng)前列表的末尾

list1 = [1, 3, 3, 4, 5]
list2 = [6, 5, 8, 9]
list1.extend(list2) #在列表1后面添加列表2
print(list1)

返回的是元素在列表中的第一個(gè)位置

定義 index()方法返回該元素最小索引值(找不到元素會(huì)報(bào)錯(cuò))

list2 = [1, 2, 4, 5, 7, 4]
print('index:', list2.index(4))  # 從列表中找出第一個(gè)數(shù)值為4的索引位置,不管第二個(gè)

排序

從小到大排序,類型不能混 ,使用的是ASCII值進(jìn)行排序

list2 = [1, 2, 4, 5, 7, 4]
list2.sort()#對原列表進(jìn)行排序
print('sort;', list2)

將列表進(jìn)行翻轉(zhuǎn)

定義reverse() 方法反轉(zhuǎn)元素的排序順序

fruits = ['apple', 'banana', 'cherry']
fruits.reverse()
print(fruits)

清除列表

定義 clear()方法清空列表所有元素

list2 = [1, 2, 4, 5, 7, 4]
list2.clear()
print(list2)

淺拷貝列表

定義 copy()方法返回指定列表的副本 ,如果某個(gè)元素是引用類型那么復(fù)制的就是這個(gè)元素的地址

fruits = ['apple', 'banana', 'cherry', 'orange']
c = fruits.copy()
print(c

深拷貝列表

使用用deepcopy()方法,才是真正的復(fù)制了一個(gè)全新的列表,包含原列表內(nèi)部的引用類型

import copy
old = [1,[1,2,3],3]
new = copy.deepcopy(old)

注意: 使用深淺拷貝需要導(dǎo)入copy模塊,因?yàn)樯羁截愐截惖脑馗?,所以速度?huì)遠(yuǎn)不如淺拷貝,在編程的過程中要注意避免造成多余的系統(tǒng)負(fù)擔(dān);

到此這篇關(guān)于Python入門之列表用法詳解的文章就介紹到這了,更多相關(guān)Python 列表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python爬蟲xpath模塊簡介示例代碼

    python爬蟲xpath模塊簡介示例代碼

    xpath是最常用且最便捷高效的一種解析方式,通用型強(qiáng),其不僅可以用于python語言中,還可以用于其他語言中,數(shù)據(jù)解析建議首先xpath,這篇文章主要介紹了python爬蟲xpath模塊簡介,需要的朋友可以參考下
    2023-02-02
  • python 將字符串完成特定的向右移動(dòng)方法

    python 將字符串完成特定的向右移動(dòng)方法

    今天小編就為大家分享一篇python 將字符串完成特定的向右移動(dòng)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • 深入了解Python并發(fā)編程

    深入了解Python并發(fā)編程

    讓計(jì)算機(jī)程序并發(fā)的運(yùn)行是一個(gè)經(jīng)常被討論的話題,這篇文章將具體介紹一下Python下的各種并發(fā)方式。感興趣的可以跟隨小編一起學(xué)習(xí)一下
    2022-01-01
  • 取numpy數(shù)組的某幾行某幾列方法

    取numpy數(shù)組的某幾行某幾列方法

    下面小編就為大家分享一篇取numpy數(shù)組的某幾行某幾列方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python使用ftplib實(shí)現(xiàn)簡易FTP客戶端的方法

    Python使用ftplib實(shí)現(xiàn)簡易FTP客戶端的方法

    這篇文章主要介紹了Python使用ftplib實(shí)現(xiàn)簡易FTP客戶端的方法,實(shí)例分析了ftplib模塊相關(guān)設(shè)置與使用技巧,需要的朋友可以參考下
    2015-06-06
  • python 微信好友特征數(shù)據(jù)分析及可視化

    python 微信好友特征數(shù)據(jù)分析及可視化

    這篇文章主要介紹了python 微信好友特征數(shù)據(jù)分析及可視化,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • python實(shí)現(xiàn)多人聊天室

    python實(shí)現(xiàn)多人聊天室

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)多人聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • python實(shí)現(xiàn)最大子序和(分治+動(dòng)態(tài)規(guī)劃)

    python實(shí)現(xiàn)最大子序和(分治+動(dòng)態(tài)規(guī)劃)

    這篇文章主要介紹了python實(shí)現(xiàn)最大子序和(分治+動(dòng)態(tài)規(guī)劃),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python調(diào)用adb命令實(shí)現(xiàn)對多臺(tái)設(shè)備同時(shí)進(jìn)行reboot的方法

    Python調(diào)用adb命令實(shí)現(xiàn)對多臺(tái)設(shè)備同時(shí)進(jìn)行reboot的方法

    今天小編就為大家分享一篇Python調(diào)用adb命令實(shí)現(xiàn)對多臺(tái)設(shè)備同時(shí)進(jìn)行reboot的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • python機(jī)器學(xué)習(xí)邏輯回歸隨機(jī)梯度下降法

    python機(jī)器學(xué)習(xí)邏輯回歸隨機(jī)梯度下降法

    這篇文章主要為大家介紹了python機(jī)器學(xué)習(xí)邏輯回歸隨機(jī)梯度下降法的詳細(xì)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11

最新評論