0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python列表的基本概念、常用操作及实际应用

网络技术干货圈 来源:网络技术干货圈 2023-04-16 10:42 次阅读

Python列表是一种强大的数据结构,用于在程序中存储和操作一系列的值。列表是可变的(mutable),可以动态地增加、删除和修改其中的元素。在Python中,列表是最常用的数据结构之一,被广泛应用于各种编程场景,从简单的数据处理到复杂的数据结构和算法。本文将介绍Python列表的基本概念、常用操作以及一些实际应用。

列表的基本概念

列表是一个有序的集合,其中的每个元素都可以是任意的数据类型,包括整数、浮点数、字符串、布尔值、甚至是其他的列表。列表用方括号([])来表示,元素之间用逗号(,)分隔。例如:

#创建一个列表
fruits=["apple","banana","cherry","date"]

#列表可以包含不同的数据类型
mixed_list=[1,2.5,"three",True]

列表的基本操作

Python列表提供了丰富的操作方法,使我们可以方便地对列表进行增加、删除、修改、访问等操作。

访问列表元素:可以使用索引来访问列表中的元素,索引从0开始,表示列表中第一个元素,依次类推。例如:

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

#访问列表中的元素
print(fruits[0])#输出:apple
print(fruits[2])#输出:cherry

修改列表元素:可以通过索引来修改列表中的元素。例如:

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

#修改列表中的元素
fruits[1]="grape"#将列表中第二个元素修改为grape
print(fruits)#输出:["apple","grape","cherry","date"]

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

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

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

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

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

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

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

列表长度:可以使用len()函数获取列表的长度,即列表中元素的个数。例如:

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

#获取列表的长度
print(len(fruits))#输出:4

列表切片:可以通过切片(slicing)来获取列表的子列表。切片使用冒号(:)表示,左边界是包含的,右边界是不包含的。例如:

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

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

列表的实际应用

Python列表在实际应用中具有广泛的用途,以下是一些示例:数据处理:列表可以用来存储和处理大量数据,例如从文件或数据库中读取的数据,可以通过列表的各种操作来进行数据的筛选、排序、统计等。

#从文件中读取数据到列表
withopen("data.txt","r")asf:
data=f.readlines()

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

#筛选出长度大于10的字符串
long_strings=[sforsindataiflen(s)>10]

#对列表进行排序
data.sort()

#统计列表中元素的个数
count=len(data)

数据可视化:列表可以作为存储数据的容器,将数据传递给数据可视化库,如Matplotlib或Seaborn,进行绘图。

importmatplotlib.pyplotasplt

#生成示例数据
x=[1,2,3,4,5]
y=[10,8,6,4,2]

#绘制折线图
plt.plot(x,y)
plt.xlabel("X轴标签")
plt.ylabel("Y轴标签")
plt.title("示例折线图")
plt.show()

程序控制流程:列表可以用来管理程序的控制流程,例如通过循环遍历列表中的元素执行一系列操作。

#处理用户输入
whileTrue:
user_input=input("请输入操作(1.添加数据2.删除数据3.退出):")
ifuser_input=="1":
#添加数据到列表
data=input("请输入要添加的数据:")
my_list.append(data)
elifuser_input=="2":
#从列表中删除数据
data=input("请输入要删除的数据:")
ifdatainmy_list:
my_list.remove(data)
else:
print("列表中不存在该数据。")
elifuser_input=="
"3":
#退出循环
print("程序已退出。")
break
else:
print("无效的输入,请重新输入。")

数据结构:列表作为一种基本的数据结构,可以用来构建更复杂的数据结构,如栈、队列、链表等。

#栈:后进先出(LIFO)
stack=[]

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

#出栈
print(stack.pop())#输出:3

#队列:先进先出(FIFO)
queue=[]

#入队列
queue.append(1)
queue.append(2)
queue.append(3)

#出队列
print(queue.pop(0))#输出:1

#链表:动态数据结构,可以在任意位置插入和删除元素
classListNode:
def__init__(self,val=0,next=None):
self.val=val
self.next=next

#创建链表
head=ListNode(1)
node1=ListNode(2)
node2=ListNode(3)

head.next=node1
node1.next=node2

#遍历链表
current=head
whilecurrent:
print(current.val)
current=current.next

列表的注意事项

在使用列表时,需要注意以下几点:列表是可变的:列表中的元素可以随时被修改、添加或删除,这意味着列表是可变的(mutable)。因此,在处理列表时需要注意原地修改(in-place modification)和创建新列表(creating a new list)之间的区别。

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

#创建新列表
fruits=["apple","banana","cherry"]
new_fruits=fruits+["date"]

列表索引从0开始:列表中的元素通过索引来访问,索引从0开始。因此,在使用列表时需要注意索引的使用,避免越界错误(IndexError)。

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

#正确的索引访问
print(fruits[0])#输出:apple

#错误的索引访问
print(fruits[3])#报错:IndexError:listindexoutofrange

列表的搜索效率较低:列表的搜索操作(如in、index()等)效率较低,因为需要逐个比较列表中的元素。如果需要频繁进行搜索操作,可能需要考虑使用其他数据结构,如集合(set)或字典(dictionary)。

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

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

列表的内存占用较大:由于列表是动态数组,需要在内存中预留足够空间来存储可能的元素,因此列表的内存占用较大。如果处理大量数据或需要优化内存占用的情况,可以考虑使用其他数据结构,如NumPy数组或Pandas数据框。

importnumpyasnp

#使用NumPy数组代替列表
arr=np.array([1,2,3,4,5])

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

列表的操作可能会引发错误:由于列表是可变的,对列表进行操作时可能会引发错误。例如,当多个变量引用同一个列表对象时,对列表的修改会影响所有引用该列表的变量。

#列表的错误操作
list1=[1,2,3]
list2=list1
list1.append(4)

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

为了避免这种情况,可以使用列表的拷贝(copy)操作或使用其他数据结构来代替列表。

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

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

总结

Python列表是一种强大的数据结构,具有灵活性和易用性。它可以用于存储和操作多个元素的集合,支持各种操作,如访问、修改、添加、删除等。同时,列表还可以作为基本数据结构,用于构建更复杂的数据结构,如栈、队列、链表等。然而,在使用列表时,需要注意列表的可变性、索引从0开始、搜索效率较低和内存占用较大等特点,并避免可能的错误操作。如果需要处理大量数据或需要更高效的操作,可以考虑使用其他数据结构。总的来说,掌握了Python列表的使用方法和注意事项,可以帮助开发者更加高效地处理和管理数据。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • python
    +关注

    关注

    51

    文章

    4675

    浏览量

    83467
  • 数据可视化
    +关注

    关注

    0

    文章

    444

    浏览量

    10132

原文标题:网络工程师学Python-3-列表及其操作

文章出处:【微信号:网络技术干货圈,微信公众号:网络技术干货圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

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

    集成电路(IC)常用基本概念有:晶圆,多指单晶硅圆片,由普通硅沙拉制提炼而成,是最常用的半导体材料,按其直径分为4英寸、5英寸、6英寸、8英寸等规格,近来发展出12英寸甚至更大规格.晶圆越大,同一
    发表于 01-11 13:52

    C语言基本概念

    C语言基本概念
    发表于 08-01 02:00

    阻抗控制相关的基本概念

    阻抗控制部分包括两部分内容:基本概念及阻抗匹配。本篇主要介绍阻抗控制相关的一些基本概念
    发表于 02-25 08:11

    操作系统原理基本概念

    操作系统原理基本概念计算机硬件系统组成中央处理器中央处理器是计算机的运算核心(Core)和控制单元( Control Unit) ,主要包括:运算逻辑部件: 一个或多个运算器寄存器部件: 包括通用
    发表于 07-26 07:46

    如何使用Python列表进行求和?

    趣的概念编写简短的教程。[tr]目录-Python列表[tr]使用SUM查找列表的和[tr]如何使用sum()函数?[tr]限制和洞穴-Pytho
    发表于 09-01 23:14

    振动的基本概念

    一、振动的基本概念1、振动的定义振动是有由于外力作用而引起的往返(周期)运动。振动特性:周期,频率,幅值和振动波形,可用来描述振动信号的基本特征。物理参数:位移,速度和加速度是用来描述机器振动的三个
    发表于 09-16 06:16

    单片机中断的基本概念

    文章目录一.中断的基本概念二.中断相关的寄存器三.中断的实际使用四.中断的优点:一.中断的基本概念1.中断的概念:在单片机中,中断是指:对于CPU来说,当它在正常处理事件A时,突然发生
    发表于 11-25 08:14

    python基础教程之python是什么?概念解析

    Python,是一种面向对象的解释型计算机程序设计语言Python基础教程本书包括Python程序设计的方方面面,首先从Python的安装开始,随后介绍了
    发表于 11-30 10:33 2107次阅读
    <b class='flag-5'>python</b>基础教程之<b class='flag-5'>python</b>是什么?<b class='flag-5'>概念</b>解析

    跳表的基本概念实际应用

    跳跃链表及其应用是非常热门的问题,面试时也非常常问,深入了解其中奥秘大有裨益,不吹了,直接开始! 跳跃链表的基本概念 初识跳表 跳跃列表是一种数据结构。它允许快速查询一个有序连续元素的数据链表。跳跃
    的头像 发表于 09-02 10:45 2486次阅读
    跳表的<b class='flag-5'>基本概念</b>和<b class='flag-5'>实际</b>应用

    python列表序列操作教程

    python列表也是序列对象,可以进行序列通用的操作,类似字符串序列的操作
    的头像 发表于 02-23 15:04 431次阅读

    介绍python列表的边界和嵌套

    本文介绍python列表的边界和嵌套。只能访问python列表范围内的项,python列表可以嵌
    的头像 发表于 02-27 14:49 677次阅读

    python列表特定方法有哪些

    python列表类似其他语言的数组,但是python列表的元素(项)可以同时为不同类型的对象,即没有固定类型约束。
    的头像 发表于 02-27 14:51 310次阅读

    python列表和数组的区别

    Python是一种功能强大的编程语言,为开发者提供了许多数据结构来处理和操作数据。其中,列表和数组是常用的数据结构,用于存储和组织一系列元素。在本文中,我们将详细比较
    的头像 发表于 11-21 15:13 859次阅读

    python怎样让列表里的数相加

    Python是一种功能强大的编程语言,可以用于处理各种各样的数学运算和数据操作。在Python中,我们可以使用简单的代码将列表中的数字相加。 首先,我们需要创建一个包含数字的
    的头像 发表于 11-22 09:53 1049次阅读

    python如何遍历列表并提取

    遍历列表Python中非常常见的操作之一,可以使用for循环或者while循环来实现。下面我将详细介绍如何使用for循环遍历列表并提取元素。 首先,让我们简单了解一下
    的头像 发表于 11-23 15:55 595次阅读