🎬 博客主页:https://xiaoy.blog.csdn.net
🎥 本文由 呆呆敲代码的小Y 原创🙉
🎄 学习专栏推荐:Unity系统学习专栏
🌲 游戏制作专栏推荐:游戏制作
🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📆 未来很长,值得我们全力奔赴更美好的生活✨
------------------❤️分割线❤️-------------------------
📢 前言
本文章是【Python零基础到入门专栏
】学习的系列文章
Python学习专栏 传送门 在此:https://blog.csdn.net/zhangay1998/category_11086734.html
本专栏从 初学者的角度
来学习Python,这是最大的一个特点
如果喜欢文章记得 订阅本专栏
观看系列学习文章,当然也要记得关注博主哦!
本篇文章来说一下Python 的 列表
,也是Python之路上一个必备的操作~
提示:本文的环境配置是Python3
的开发环境,后续教程也都是Python3
👑Python语法必备篇——列表 学习
本篇文章来讲一下Python中的 列表
,方便我们学习
在介绍列表之前,先来简单说一下序列
序列
指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们。
在 Python 中,序列
类型包括字符串、列表、元组、集合和字典
序列
是 Python 中最基本的数据结构。
序列
中的每个值都有对应的位置值,称之为索引,第一个索引是 0,第二个索引是 1,依此类推
其中 列表
是最常用的 Python 数据类型,它可以作为一个方括号内的逗号分隔值出现。
而且 列表
的数据项不需要具有相同的类型
创建一个列表
,只要把逗号分隔的不同的数据项使用方括号括起来即可
例如:
[ 'CSDN' , 'XiaoY' , 1998 , 100000 ]
[ "呆呆敲代码的小Y" , "Unity" , "Python" ]
[ "a" , "b" , "c" , "d" ]
在一些 Python 教程中,经常用 list 代指列表,这是因为列表的数据类型就是 list,通过 type() 函数就可以知道,例如:
type ( [ "https://xiaoy.blog.csdn.net/" , 666 , [ 2 , 3 , 4 ] , 3.0 ] )
输出:< class 'list' >
🎄创建列表
简单的介绍了一下列表,那么接下来就看一下怎样创建列表
吧
在 Python 中,创建列表的方法可分为下面两种
💥第一种方法: 使用 [ ] 直接创建列表
使用 [ ]
创建列表后,一般使用 =
将它赋值给某个变量,具体格式如下:
listname = [ element1 , element2 , element3 , . . . , elementn]
例如,下面定义的列表都是可以的:
num = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 ]
name = [ "呆呆敲代码的小Y" , "https://xiaoy.blog.csdn.net" ]
program = [ "呆呆敲代码的小Y" , "Python" , "Unity" ]
emptylist = [ ]
如果列表中没有数据,表明emptylist
是一个空列表。
💥第二种方法:使用 list() 函数创建列表
除了使用[ ]
创建列表外,Python 还提供了一个内置的函数list()
使用它可以将其它数据类型转换为列表类型。例如:
#将字符串转换成列表
list1 = list ( "xiaoY" )
print ( list1)
#将元组转换成列表
tuple1 = ( 'Python' , 'Unity' , 'C#' )
list2 = list ( tuple1)
print ( list2)
#将字典转换成列表
dict1 = { 'a' : 100 , 'b' : 42 , 'c' : 9 }
list3 = list ( dict1)
print ( list3)
#将区间转换成列表
range1 = range ( 1 , 6 )
list4 = list ( range1)
print ( list4)
#创建空列表
print ( list ( ) )
上述代码运行结果:
['x’, 'i’, 'a’, 'o’, 'Y’] ['Python’, 'Unity’, 'C#’] ['a’, 'b’, 'c’] [1, 2, 3, 4, 5] []
🔔访问列表中的值
列表
是 Python 序列的一种,我们可以使用索引(Index)访问列表中的某个元素(得到的是一个元素的值),也可以使用切片访问列表中的一组元素(得到的是一个新的子列表)。
使用索引
访问列表元素的格式为:
listname[ i]
其中,listname
表示列表名字,i
表示索引值。列表的索引可以是正数,也可以是负数。
使用切片访问列表元素的格式为:
listname[ start : end : step]
其中,listname
表示列表名字,start
表示起始索引,end
表示结束索引,step
表示步长。
示例如下:
url = list ( "https://xiaoy.blog.csdn.net/" )
#使用索引访问列表中的某个元素
print ( url[ 3 ] ) #使用正数索引
print ( url[ - 4 ] ) #使用负数索引
#使用切片访问列表中的一组元素
print ( url[ 8 : 12 ] ) #使用正数切片
print ( url[ 8 : 12 : 2 ] ) #指定步长
print ( url[ - 4 : - 2 ] ) #使用负数切片
上述代码运行结果
p n ['x’, 'i’, 'a’, 'o’, 'y’] ['x’, 'a’, 'y’] ['n’, 'e’, 't’]
🎁列表的删除
对于已经创建的列表,如果不再使用,可以使用 del
关键字将其删除。
实际开发中并不经常使用 del
来删除列表
因为 Python 自带的垃圾回收机制会自动销毁无用的列表,即使开发者不手动删除,Python 也会自动将其回收。
del
关键字的语法格式为:
del listname
其中,listname
表示要删除列表的名称。
删除列表示例如下:
intlist = [ 1 , 45 , 8 , 34 ]
print ( intlist)
del intlist
🎉列表元素的增删改查
实际开发中,经常需要对 Python 列表进行更新,包括向列表中添加元素
、修改表中元素
以及 删除元素
下面就来简单的演示一下这几种情况的使用方法
🏳️🌈列表添加元素
首先,我们在Python中可以使用 +
来进行添加元素
示例如下:
language = [ "Python" , "C++" , "Java" ]
birthday = [ 1991 , 1998 , 1995 ]
info = language + birthday
print ( "language =" , language)
print ( "birthday =" , birthday)
print ( "info =" , info)
上述代码运行结果:
language = ['Python’, 'C++’, 'Java’] birthday = [1991, 1998, 1995] info = ['Python’, 'C++’, 'Java’, 1991, 1998, 1995]
从运行结果可以发现,使用 +
会生成一个新的列表,原有的列表不会被改变。
但是 +
更多的是用来拼接列表,而且执行效率并不高。
下面我们来说几个常用的添加元素的方法!
第一种方法:append()方法添加元素
append()
方法用于在列表的末尾追加元素,该方法的语法格式如下:
listname. append( obj)
其中,listname
表示要添加元素的列表;obj
表示到添加到列表末尾的数据,它可以是单个元素,也可以是列表、元组等。
示例如下:
list1 = [ 'Python' , 'C#' , 'Java' ]
#追加元素
list1 . append( 'Unity' )
print ( list1 )
#追加元组,整个元组被当成一个元素
t = ( 'JavaScript' , 'C++' , 'Go' )
list1 . append( t)
print ( list1 )
#追加列表,整个列表也被当成一个元素
list1 . append( [ 'Ruby' , 'SQL' ] )
print ( list1 )
上述代码输出结果:
['Python’, 'C#’, 'Java’, 'Unity’] ['Python’, 'C#’, 'Java’, 'Unity’, ('JavaScript’, 'C++’, 'Go’)] ['Python’, 'C#’, 'Java’, 'Unity’, ('JavaScript’, 'C++’, 'Go’), ['Ruby’, 'SQL’]]
第二种方法:extend()方法添加元素
extend()
和 append()
的不同之处在于:extend()
不会把列表或者元祖视为一个整体,而是把它们包含的元素逐个添加到列表中。
extend()
方法的语法格式如下:
listname. extend( obj)
其中,listname
指的是要添加元素的列表;obj
表示到添加到列表末尾的数据,它可以是单个元素,也可以是列表、元组等,但不能是单个的数字。
示例如下:
list1 = [ 'Python' , 'C#' , 'Java' ]
#追加元素
list1 . extend( 'Unity' )
print ( list1 )
#追加元组,元祖被拆分成多个元素
t = ( 'JavaScript' , 'C++' , 'Go' )
list1 . extend( t)
print ( list1)
#追加列表,列表也被拆分成多个元素
list1 . extend( [ 'Ruby' , 'SQL' ] )
print ( list1)
上述代码输出结果:
['Python’, 'C#’, 'Java’, 'Unity’] ['Python’, 'C#’, 'Java’, 'Unity’, 'JavaScript’, 'C++’, 'Go’] ['Python’, 'C#’, 'Java’, 'Unity’, 'JavaScript’, 'C++’, 'Go’, 'Ruby’, 'SQL’]
第三种方法:insert()方法插入元素
append()
和 extend()
方法只能在列表末尾插入元素
如果希望在列表中间某个位置插入元素,那么可以使用 insert()
方法。
insert()
的语法格式如下:
listname. insert( index , obj)
其中,index
表示指定位置的索引值。insert()
会将 obj
插入到 listname
列表第 index
个元素的位置。
当插入列表或者元祖时,insert()
也会将它们视为一个整体,作为一个元素插入到列表中,这一点和 append()
是一样的。
示例代码如下:
list1 = [ 'Python' , 'C#' , 'Java' ]
#插入元素
list1. insert( 1 , 'Unity' )
print ( list1 )
#插入元组,整个元祖被当成一个元素
t = ( 'C++' , 'Go' )
list1. insert( 2 , t)
print ( list1)
#插入列表,整个列表被当成一个元素
list1. insert( 3 , [ 'Ruby' , 'SQL' ] )
print ( list1)
#插入字符串,整个字符串被当成一个元素
list1. insert( 0 , "https://xiaoy.blog.csdn.net" )
print ( list1)
上述代码输出结果:
['Python’, 'Unity’, 'C#’, 'Java’] ['Python’, 'Unity’, ('C++’, 'Go’), 'C#’, 'Java’] ['Python’, 'Unity’, ('C++’, 'Go’), ['Ruby’, 'SQL’], 'C#’, 'Java’] ['https://xiaoy.blog.csdn.net’, 'Python’, 'Unity’, ('C++’, 'Go’), ['Ruby’, 'SQL’], 'C#’, 'Java’]
insert()
主要用来在列表的中间位置插入元素,如果是希望在列表的末尾追加元素,使用 append()
和 extend()
的效果更佳。
🏳️🌈列表删除元素
在 Python 列表中删除元素主要分为以下 3 种情况:
根据目标元素所在位置的索引进行删除,可以使用 del 关键字或者 pop() 方法; 根据元素本身的值进行删除,可使用列表(list类型)提供的 remove() 方法; 将列表中所有元素全部删除,可使用列表(list类型)提供的 clear() 方法。
del:根据索引值删除元素 del
可以删除列表中的单个元素,格式为:
del listname[ index]
其中,listname
表示列表名称,index
表示元素的索引值。
del
也可以删除中间一段连续的元素,格式为:
del listname[ start : end]
其中,start
表示起始索引,end
表示结束索引。
del
会删除从索引 start
到 end
之间的元素,不包括 end
位置的元素。
示例如下:
lang = [ "Python" , "C++" , "Java" , "PHP" , "Ruby" , "MATLAB" ]
#使用 del 删除单个列表元素:
del lang[ 2 ]
print ( lang)
#使用 del 删除一段连续的元素
del lang[ 1 : 4 ]
print ( lang)
上述代码输出结果如下:
['Python’, 'C++’, 'PHP’, 'Ruby’, 'MATLAB’] ['Python’, 'MATLAB’]
pop():根据索引值删除元素 pop()
方法用来删除列表中指定索引处的元素,具体格式如下:
listname. pop( index)
其中,listname
表示列表名称,index
表示索引值。
如果不写 index
参数,默认会删除列表中的最后一个元素,类似于数据结构中的“出栈”操作。
示例如下:
nums = [ 123 , 666 , 888 , 256 , 36 , 10000 , 70000 ]
nums. pop( 3 )
print ( nums)
nums. pop( )
print ( nums)
上述代码输出结果如下:
[123, 666, 256, 36, 10000, 70000] [123, 666, 256, 36, 10000]
remove():根据元素值进行删除
除了 del
关键字,Python 还提供了 remove()
方法,该方法会根据元素本身的值来进行删除操作。
需要注意的是,remove()
方法只会删除第一个和指定值相同的元素,而且必须保证该元素是存在的,否则会引发 ValueError
错误。
示例如下:
nums = [ 40 , 36 , 89 , 2 , 36 , 100 , 7 ]
#第一次删除36
nums. remove( 36 )
print ( nums)
#第二次删除36
nums. remove( 36 )
print ( nums)
#删除78
nums. remove( 78 )
print ( nums)
上述代码输出结果如下:
[40, 89, 2, 36, 100, 7] [40, 89, 2, 100, 7] Traceback (most recent call last): File “Desktop\demo.py”, line 9, in nums.remove(78) ValueError: list.remove(x): x not in list
最后一次删除,因为 78 不存在导致报错,所以在使用 remove() 删除元素时最好提前判断一下,防止程序报错。
clear():删除列表所有元素
clear()
用来删除列表的所有元素,也即清空列表,请看下面的代码:
url = list ( "https://xiaoy.blog.csdn.net/" )
url. clear( )
print ( url)
运行结果:
[]
🏳️🌈列表修改元素
列表修改元素有两种情况,分别是 修改单个元素
和 修改一组元素
修改单个元素非常简单,直接对元素赋值即可。
实例代码如下:
nums = [ 40 , 36 , 89 , 2 , 36 , 100 , 7 ]
nums[ 2 ] = - 26 #使用正数索引
nums[ - 3 ] = - 66.2 #使用负数索引
print ( nums)
运行结果:
[40, 36, -26, 2, -66.2, 100, 7]
如果对空切片(slice)赋值,就相当于插入一组新的元素:
nums = [ 40 , 36 , 89 , 2 , 36 , 100 , 7 ]
#在4个位置插入元素
nums[ 4 : 4 ] = [ - 77 , - 52.5 , 999 ]
print ( nums)
运行结果:
[40, 36, 89, 2, -77, -52.5, 999, 36, 100, 7]
使用切片语法赋值时,Python 不支持单个值,例如下面的写法就是错误的:
nums[ 4 : 4 ] = - 77
但是如果使用字符串赋值,Python 会自动把字符串转换成序列,其中的每个字符都是一个元素,请看下面的代码:
s = list ( "Hello" )
s[ 2 : 4 ] = "XYZ"
print ( s)
运行结果:
['H’, 'e’, 'X’, 'Y’, 'Z’, 'o’]
使用切片语法时也可以指定步长(step 参数),但这个时候就要求所赋值的新元素的个数与原有元素的个数相同,例如:
nums = [ 40 , 36 , 89 , 2 , 36 , 100 , 7 ]
#步长为2,为第1、3、5个元素赋值
nums[ 1 : 6 : 2 ] = [ 0.025 , - 99 , 20.5 ]
print ( nums)
运行结果:
[40, 0.025, 89, -99, 36, 20.5, 7]
🏳️🌈列表查找元素
说完了列表的增删改
,那就到了最后这个 查找元素
的方法啦!
Python 列表(list)提供了 index()
和 count()
方法,它们都可以用来查找元素。
index()
方法用来查找某个元素在列表中出现的位置(也就是索引),如果该元素不存在,则会导致 ValueError 错误
,所以在查找之前最好使用 count()
方法判断一下。
index()
的语法格式为:
listname. index( obj, start, end)
其中,listname
表示列表名称,obj
表示要查找的元素,start
表示起始位置,end
表示结束位置。
start
和 end
参数用来指定检索范围:
start 和 end 可以都不写,此时会检索整个列表; 如果只写 start 不写 end,那么表示检索从 start 到末尾的元素; 如果 start 和 end 都写,那么表示检索 start 和 end 之间的元素。
index()
方法会返回元素所在列表中的索引值。
示例代码如下:
nums = [ 40 , 36 , 89 , 2 , 36 , 100 , 7 , - 20.5 , - 999 ]
#检索列表中的所有元素
print ( nums. index( 2 ) )
#检索3~7之间的元素
print ( nums. index( 100 , 3 , 7 ) )
#检索4之后的元素
print ( nums. index( 7 , 4 ) )
#检索一个不存在的元素
print ( nums. index( 55 ) )
上述代码输出结果:
3 5 6 Traceback (most recent call last): File “Desktop\demo.py”, line 9, in print( nums.index(55) ) ValueError: 55 is not in list
count()
方法用来统计某个元素在列表中出现的次数,基本语法格式为:
listname. count( obj)
其中,listname
代表列表名,obj
表示要统计的元素。
如果 count()
返回 0,就表示列表中不存在该元素,所以 count()
也可以用来判断列表中的某个元素是否存在。
实例代码如下:
nums = [ 40 , 36 , 89 , 2 , 36 , 100 , 7 , - 20.5 , 36 ]
#统计元素出现的次数
print ( "36出现了%d次" % nums. count( 36 ) )
#判断一个元素是否存在
if nums. count( 100 ) :
print ( "列表中存在100这个元素" )
else :
print ( "列表中不存在100这个元素" )
输出结果:
36出现了3次 列表中存在100这个元素
🎈Python列表脚本操作符
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
Python 表达式 结果 描述 len([1, 2, 3]) 3 长度 [1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 组合 ['Hi!’] * 4 ['Hi!’, 'Hi!’, 'Hi!’, 'Hi!’] 重复 3 in [1, 2, 3] True 元素是否存在于列表中 for x in [1, 2, 3]: print(x, end=" ") 1 2 3 迭代
🎋Python列表函数&方法
Python包含以下列表函数:
序号 函数 1 len(list) 列表元素个数2 max(list) 返回列表元素最大值3 min(list) 返回列表元素最小值4 list(seq) 将元组转换为列表
Python包含以下列表方法:
序号 方法 1 list.append(obj) 在列表末尾添加新的对象2 list.count(obj) 统计某个元素在列表中出现的次数3 list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)4 list.index(obj) 从列表中找出某个值第一个匹配项的索引位置5 list.insert(index, obj) 将对象插入列表6 list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值7 list.remove(obj) 移除列表中某个值的第一个匹配项8 list.reverse() 反向列表中元素9 list.sort( key=None, reverse=False) 对原列表进行排序10 list.clear() 清空列表11 list.copy() 复制列表
🎅总结
本文对Python中的列表
做了一个详细的介绍。 列表
在Python中很常用,是一个很重要的数据类型。本文中介绍了列表的创建
、访问
、删除
和列表元素的增删改查
。 还包括一下常用的列表脚本操作符
,列表的常用函数和方法
。 如果哪个地方描述的不对也希望大家在评论区指出一起学习! 觉得博主写的还不错记得三连支持一波哦~ 咱们下次再见啦!
📆【游戏开发爱好者社区】活动进行中,每周打卡送书籍等礼品,期待你的加入
【游戏开发爱好者社区】 在本周重磅新推出【每日打卡】活动
🎁 新玩法,奖励升级!游戏开发爱好者社区:https://bbs.csdn.net/forums/unitygame
社区中心思想 :今天你学到了什么?
在社区你可以做些什么: 每日强化知识点,白嫖书籍礼品!
一个人可以走的很快,一群人才能走的更远!🔥爆C站的游戏开发爱好者社区欢迎您的加入!
更多白嫖活动详情:https://bbs.csdn.net/topics/603722518
本周书籍赠送:《Unity 实战(第2版)》 +《Python爬虫与反爬虫开发从入门到精通 》 欢迎来白嫖呀!!!
温馨提示: 点击下面卡片可以获取更多编程知识,包括各种语言学习资料,上千套PPT模板和各种游戏源码素材等等资料。更多内容可自行查看哦!