0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python列表的基本概念、常用操作及實(shí)際應(yīng)用

網(wǎng)絡(luò)技術(shù)干貨圈 ? 來(lái)源:網(wǎng)絡(luò)技術(shù)干貨圈 ? 2023-04-16 10:42 ? 次閱讀

Python列表是一種強(qiáng)大的數(shù)據(jù)結(jié)構(gòu),用于在程序中存儲(chǔ)和操作一系列的值。列表是可變的(mutable),可以動(dòng)態(tài)地增加、刪除和修改其中的元素。在Python中,列表是最常用的數(shù)據(jù)結(jié)構(gòu)之一,被廣泛應(yīng)用于各種編程場(chǎng)景,從簡(jiǎn)單的數(shù)據(jù)處理到復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和算法。本文將介紹Python列表的基本概念、常用操作以及一些實(shí)際應(yīng)用。

列表的基本概念

列表是一個(gè)有序的集合,其中的每個(gè)元素都可以是任意的數(shù)據(jù)類型,包括整數(shù)、浮點(diǎn)數(shù)、字符串、布爾值、甚至是其他的列表。列表用方括號(hào)([])來(lái)表示,元素之間用逗號(hào)(,)分隔。例如:

#創(chuàng)建一個(gè)列表
fruits=["apple","banana","cherry","date"]

#列表可以包含不同的數(shù)據(jù)類型
mixed_list=[1,2.5,"three",True]

列表的基本操作

Python列表提供了豐富的操作方法,使我們可以方便地對(duì)列表進(jìn)行增加、刪除、修改、訪問(wèn)等操作。

訪問(wèn)列表元素:可以使用索引來(lái)訪問(wèn)列表中的元素,索引從0開(kāi)始,表示列表中第一個(gè)元素,依次類推。例如:

fruits=["apple","banana","cherry","date"]

#訪問(wèn)列表中的元素
print(fruits[0])#輸出:apple
print(fruits[2])#輸出:cherry

修改列表元素:可以通過(guò)索引來(lái)修改列表中的元素。例如:

fruits=["apple","banana","cherry","date"]

#修改列表中的元素
fruits[1]="grape"#將列表中第二個(gè)元素修改為grape
print(fruits)#輸出:["apple","grape","cherry","date"]

增加元素:可以使用append()方法向列表末尾添加一個(gè)元素,使用insert()方法在指定的位置插入一個(gè)元素。例如:

fruits=["apple","banana","cherry","date"]

#向列表末尾添加一個(gè)元素
fruits.append("fig")
print(fruits)#輸出:["apple","banana","cherry","date","fig"]

#在指定位置插入一個(gè)元素
fruits.insert(2,"grape")
print(fruits)#輸出:["apple","banana","grape","cherry","date","fig"]

刪除元素:可以使用remove()方法刪除列表中的某個(gè)元素,使用pop()方法刪除列表中指定位置的元素,并返回被刪除的元素的值。例如:

fruits=["apple","banana","cherry","date"]

#刪除列表中的某個(gè)元素
fruits.remove("banana")
print(fruits)
輸出:["apple","cherry","date"]
刪除列表中指定位置的元素
removed_element=fruits.pop(1)
print("被刪除的元素是:",removed_element)#輸出:被刪除的元素是:cherry
print(fruits)#輸出:["apple","date"]

列表長(zhǎng)度:可以使用len()函數(shù)獲取列表的長(zhǎng)度,即列表中元素的個(gè)數(shù)。例如:

fruits=["apple","banana","cherry","date"]

#獲取列表的長(zhǎng)度
print(len(fruits))#輸出:4

列表切片:可以通過(guò)切片(slicing)來(lái)獲取列表的子列表。切片使用冒號(hào)(:)表示,左邊界是包含的,右邊界是不包含的。例如:

fruits=["apple","banana","cherry","date"]

#獲取列表的子列表
print(fruits[1:3])#輸出:["banana","cherry"]

列表的實(shí)際應(yīng)用

Python列表在實(shí)際應(yīng)用中具有廣泛的用途,以下是一些示例:數(shù)據(jù)處理:列表可以用來(lái)存儲(chǔ)和處理大量數(shù)據(jù),例如從文件或數(shù)據(jù)庫(kù)中讀取的數(shù)據(jù),可以通過(guò)列表的各種操作來(lái)進(jìn)行數(shù)據(jù)的篩選、排序、統(tǒng)計(jì)等。

#從文件中讀取數(shù)據(jù)到列表
withopen("data.txt","r")asf:
data=f.readlines()

#去除每行末尾的換行符
data=[line.strip()forlineindata]

#篩選出長(zhǎng)度大于10的字符串
long_strings=[sforsindataiflen(s)>10]

#對(duì)列表進(jìn)行排序
data.sort()

#統(tǒng)計(jì)列表中元素的個(gè)數(shù)
count=len(data)

數(shù)據(jù)可視化:列表可以作為存儲(chǔ)數(shù)據(jù)的容器,將數(shù)據(jù)傳遞給數(shù)據(jù)可視化庫(kù),如Matplotlib或Seaborn,進(jìn)行繪圖。

importmatplotlib.pyplotasplt

#生成示例數(shù)據(jù)
x=[1,2,3,4,5]
y=[10,8,6,4,2]

#繪制折線圖
plt.plot(x,y)
plt.xlabel("X軸標(biāo)簽")
plt.ylabel("Y軸標(biāo)簽")
plt.title("示例折線圖")
plt.show()

程序控制流程:列表可以用來(lái)管理程序的控制流程,例如通過(guò)循環(huán)遍歷列表中的元素執(zhí)行一系列操作。

#處理用戶輸入
whileTrue:
user_input=input("請(qǐng)輸入操作(1.添加數(shù)據(jù)2.刪除數(shù)據(jù)3.退出):")
ifuser_input=="1":
#添加數(shù)據(jù)到列表
data=input("請(qǐng)輸入要添加的數(shù)據(jù):")
my_list.append(data)
elifuser_input=="2":
#從列表中刪除數(shù)據(jù)
data=input("請(qǐng)輸入要?jiǎng)h除的數(shù)據(jù):")
ifdatainmy_list:
my_list.remove(data)
else:
print("列表中不存在該數(shù)據(jù)。")
elifuser_input=="
"3":
#退出循環(huán)
print("程序已退出。")
break
else:
print("無(wú)效的輸入,請(qǐng)重新輸入。")

數(shù)據(jù)結(jié)構(gòu):列表作為一種基本的數(shù)據(jù)結(jié)構(gòu),可以用來(lái)構(gòu)建更復(fù)雜的數(shù)據(jù)結(jié)構(gòu),如棧、隊(duì)列、鏈表等。

#棧:后進(jìn)先出(LIFO)
stack=[]

#入棧
stack.append(1)
stack.append(2)
stack.append(3)

#出棧
print(stack.pop())#輸出:3

#隊(duì)列:先進(jìn)先出(FIFO)
queue=[]

#入隊(duì)列
queue.append(1)
queue.append(2)
queue.append(3)

#出隊(duì)列
print(queue.pop(0))#輸出:1

#鏈表:動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu),可以在任意位置插入和刪除元素
classListNode:
def__init__(self,val=0,next=None):
self.val=val
self.next=next

#創(chuàng)建鏈表
head=ListNode(1)
node1=ListNode(2)
node2=ListNode(3)

head.next=node1
node1.next=node2

#遍歷鏈表
current=head
whilecurrent:
print(current.val)
current=current.next

列表的注意事項(xiàng)

在使用列表時(shí),需要注意以下幾點(diǎn):列表是可變的:列表中的元素可以隨時(shí)被修改、添加或刪除,這意味著列表是可變的(mutable)。因此,在處理列表時(shí)需要注意原地修改(in-place modification)和創(chuàng)建新列表(creating a new list)之間的區(qū)別。

#原地修改
fruits=["apple","banana","cherry"]
fruits[1]="orange"

#創(chuàng)建新列表
fruits=["apple","banana","cherry"]
new_fruits=fruits+["date"]

列表索引從0開(kāi)始:列表中的元素通過(guò)索引來(lái)訪問(wèn),索引從0開(kāi)始。因此,在使用列表時(shí)需要注意索引的使用,避免越界錯(cuò)誤(IndexError)。

fruits=["apple","banana","cherry"]

#正確的索引訪問(wèn)
print(fruits[0])#輸出:apple

#錯(cuò)誤的索引訪問(wèn)
print(fruits[3])#報(bào)錯(cuò):IndexError:listindexoutofrange

列表的搜索效率較低:列表的搜索操作(如in、index()等)效率較低,因?yàn)樾枰饌€(gè)比較列表中的元素。如果需要頻繁進(jìn)行搜索操作,可能需要考慮使用其他數(shù)據(jù)結(jié)構(gòu),如集合(set)或字典(dictionary)。

fruits=["apple","banana","cherry"]

#列表的搜索操作
print("orange"infruits)#輸出:False
print(fruits.index("cherry"))#輸出:2

列表的內(nèi)存占用較大:由于列表是動(dòng)態(tài)數(shù)組,需要在內(nèi)存中預(yù)留足夠空間來(lái)存儲(chǔ)可能的元素,因此列表的內(nèi)存占用較大。如果處理大量數(shù)據(jù)或需要優(yōu)化內(nèi)存占用的情況,可以考慮使用其他數(shù)據(jù)結(jié)構(gòu),如NumPy數(shù)組或Pandas數(shù)據(jù)框。

importnumpyasnp

#使用NumPy數(shù)組代替列表
arr=np.array([1,2,3,4,5])

#使用Pandas數(shù)據(jù)框代替列表
importpandasaspd
df=pd.DataFrame({"col1":[1,2,3],"col2":[4,5,6]})

列表的操作可能會(huì)引發(fā)錯(cuò)誤:由于列表是可變的,對(duì)列表進(jìn)行操作時(shí)可能會(huì)引發(fā)錯(cuò)誤。例如,當(dāng)多個(gè)變量引用同一個(gè)列表對(duì)象時(shí),對(duì)列表的修改會(huì)影響所有引用該列表的變量。

#列表的錯(cuò)誤操作
list1=[1,2,3]
list2=list1
list1.append(4)

print(list1)#輸出:[1,2,3,4]
print(list2)#輸出:[1,2,3,4],list2也被修改了

為了避免這種情況,可以使用列表的拷貝(copy)操作或使用其他數(shù)據(jù)結(jié)構(gòu)來(lái)代替列表。

#使用列表的拷貝操作
list1=[1,2,3]
list2=list1.copy()
list1.append(4)

print(list1)#輸出:[1,2,3,4]
print(list2)#輸出:[1,2,3],list2不受影響

總結(jié)

Python列表是一種強(qiáng)大的數(shù)據(jù)結(jié)構(gòu),具有靈活性和易用性。它可以用于存儲(chǔ)和操作多個(gè)元素的集合,支持各種操作,如訪問(wèn)、修改、添加、刪除等。同時(shí),列表還可以作為基本數(shù)據(jù)結(jié)構(gòu),用于構(gòu)建更復(fù)雜的數(shù)據(jù)結(jié)構(gòu),如棧、隊(duì)列、鏈表等。然而,在使用列表時(shí),需要注意列表的可變性、索引從0開(kāi)始、搜索效率較低和內(nèi)存占用較大等特點(diǎn),并避免可能的錯(cuò)誤操作。如果需要處理大量數(shù)據(jù)或需要更高效的操作,可以考慮使用其他數(shù)據(jù)結(jié)構(gòu)。總的來(lái)說(shuō),掌握了Python列表的使用方法和注意事項(xiàng),可以幫助開(kāi)發(fā)者更加高效地處理和管理數(shù)據(jù)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    55

    文章

    4767

    瀏覽量

    84375
  • 數(shù)據(jù)可視化

    關(guān)注

    0

    文章

    457

    瀏覽量

    10225

原文標(biāo)題:網(wǎng)絡(luò)工程師學(xué)Python-3-列表及其操作

文章出處:【微信號(hào):網(wǎng)絡(luò)技術(shù)干貨圈,微信公眾號(hào):網(wǎng)絡(luò)技術(shù)干貨圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    集成電路(IC)常用基本概念

    集成電路(IC)常用基本概念有:晶圓,多指單晶硅圓片,由普通硅沙拉制提煉而成,是最常用的半導(dǎo)體材料,按其直徑分為4英寸、5英寸、6英寸、8英寸等規(guī)格,近來(lái)發(fā)展出12英寸甚至更大規(guī)格.晶圓越大,同一
    發(fā)表于 01-11 13:52

    操作系統(tǒng)原理基本概念

    操作系統(tǒng)原理基本概念計(jì)算機(jī)硬件系統(tǒng)組成中央處理器中央處理器是計(jì)算機(jī)的運(yùn)算核心(Core)和控制單元( Control Unit) ,主要包括:運(yùn)算邏輯部件: 一個(gè)或多個(gè)運(yùn)算器寄存器部件: 包括通用
    發(fā)表于 07-26 07:46

    如何使用Python對(duì)列表進(jìn)行求和?

    趣的概念編寫(xiě)簡(jiǎn)短的教程。[tr]目錄-Python列表[tr]使用SUM查找列表的和[tr]如何使用sum()函數(shù)?[tr]限制和洞穴-Pytho
    發(fā)表于 09-01 23:14

    振動(dòng)的基本概念

    一、振動(dòng)的基本概念1、振動(dòng)的定義振動(dòng)是有由于外力作用而引起的往返(周期)運(yùn)動(dòng)。振動(dòng)特性:周期,頻率,幅值和振動(dòng)波形,可用來(lái)描述振動(dòng)信號(hào)的基本特征。物理參數(shù):位移,速度和加速度是用來(lái)描述機(jī)器振動(dòng)的三個(gè)
    發(fā)表于 09-16 06:16

    單片機(jī)中斷的基本概念

    文章目錄一.中斷的基本概念二.中斷相關(guān)的寄存器三.中斷的實(shí)際使用四.中斷的優(yōu)點(diǎn):一.中斷的基本概念1.中斷的概念:在單片機(jī)中,中斷是指:對(duì)于CPU來(lái)說(shuō),當(dāng)它在正常處理事件A時(shí),突然發(fā)生
    發(fā)表于 11-25 08:14

    電子商務(wù)基本概念操作

    電子商務(wù)基本概念操作 主頁(yè)(Home Page)是指?jìng)€(gè)人或機(jī)構(gòu)的基本信息頁(yè)面,用戶通過(guò)主頁(yè)可以訪問(wèn)有關(guān)的信息資源。主頁(yè)通常是用戶使用WWW瀏覽器訪問(wèn)Internet上任
    發(fā)表于 04-28 16:30 ?0次下載

    python基礎(chǔ)教程之python是什么?概念解析

    Python,是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言Python基礎(chǔ)教程本書(shū)包括Python程序設(shè)計(jì)的方方面面,首先從Python的安裝開(kāi)始,隨后介紹了
    發(fā)表于 11-30 10:33 ?2258次閱讀
    <b class='flag-5'>python</b>基礎(chǔ)教程之<b class='flag-5'>python</b>是什么?<b class='flag-5'>概念</b>解析

    跳表的基本概念實(shí)際應(yīng)用

    跳躍鏈表及其應(yīng)用是非常熱門(mén)的問(wèn)題,面試時(shí)也非常常問(wèn),深入了解其中奧秘大有裨益,不吹了,直接開(kāi)始! 跳躍鏈表的基本概念 初識(shí)跳表 跳躍列表是一種數(shù)據(jù)結(jié)構(gòu)。它允許快速查詢一個(gè)有序連續(xù)元素的數(shù)據(jù)鏈表。跳躍
    的頭像 發(fā)表于 09-02 10:45 ?2664次閱讀
    跳表的<b class='flag-5'>基本概念</b>和<b class='flag-5'>實(shí)際</b>應(yīng)用

    如何運(yùn)用Python列表的元素比較解決問(wèn)題

    在用python處理多個(gè)列表元素時(shí),需要處理的信息一般比較多且雜。這時(shí)運(yùn)用Python列表元素比較的方法,就能快速處理列表信息,能更輕松訪問(wèn)
    的頭像 發(fā)表于 02-17 15:04 ?702次閱讀
    如何運(yùn)用<b class='flag-5'>Python</b><b class='flag-5'>列表</b>的元素比較解決問(wèn)題

    python列表序列操作教程

    python列表也是序列對(duì)象,可以進(jìn)行序列通用的操作,類似字符串序列的操作。
    的頭像 發(fā)表于 02-23 15:04 ?609次閱讀

    介紹python列表的邊界和嵌套

    本文介紹python列表的邊界和嵌套。只能訪問(wèn)python列表范圍內(nèi)的項(xiàng),python列表可以嵌
    的頭像 發(fā)表于 02-27 14:49 ?901次閱讀

    python列表特定方法有哪些

    python列表類似其他語(yǔ)言的數(shù)組,但是python列表的元素(項(xiàng))可以同時(shí)為不同類型的對(duì)象,即沒(méi)有固定類型約束。
    的頭像 發(fā)表于 02-27 14:51 ?463次閱讀

    python列表和數(shù)組的區(qū)別

    Python是一種功能強(qiáng)大的編程語(yǔ)言,為開(kāi)發(fā)者提供了許多數(shù)據(jù)結(jié)構(gòu)來(lái)處理和操作數(shù)據(jù)。其中,列表和數(shù)組是常用的數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)和組織一系列元素。在本文中,我們將詳細(xì)比較
    的頭像 發(fā)表于 11-21 15:13 ?2207次閱讀

    python怎樣讓列表里的數(shù)相加

    Python是一種功能強(qiáng)大的編程語(yǔ)言,可以用于處理各種各樣的數(shù)學(xué)運(yùn)算和數(shù)據(jù)操作。在Python中,我們可以使用簡(jiǎn)單的代碼將列表中的數(shù)字相加。 首先,我們需要?jiǎng)?chuàng)建一個(gè)包含數(shù)字的
    的頭像 發(fā)表于 11-22 09:53 ?1776次閱讀

    python如何遍歷列表并提取

    遍歷列表Python中非常常見(jiàn)的操作之一,可以使用for循環(huán)或者while循環(huán)來(lái)實(shí)現(xiàn)。下面我將詳細(xì)介紹如何使用for循環(huán)遍歷列表并提取元素。 首先,讓我們簡(jiǎn)單了解一下
    的頭像 發(fā)表于 11-23 15:55 ?1241次閱讀