Python list列表详解
zhezhongyun 2024-12-04 17:04 46 浏览
在实际开发中,经常需要将一组(不只一个)数据存储起来,以便后边的代码使用。说到这里,一些读者可能听说过数组(Array),它就可以把多个数据挨个存储到一起,通过数组下标可以访问数组中的每个元素。
需要明确的是,Python 中没有数组,但是加入了更加强大的列表。如果把数组看作是一个集装箱,那么 Python 的列表就是一个工厂的仓库。
大部分编程语言都支持数组,比如C语言、C++、Java、PHP、JavaScript 等。
从形式上看,列表会将所有元素都放在一对中括号[ ]里面,相邻元素之间用逗号,分隔,如下所示:
[element1, element2, element3, ..., elementn]
格式中,element1 ~ elementn 表示列表中的元素,个数没有限制,只要是 Python 支持的数据类型就可以。
从内容上看,列表可以存储整数、小数、字符串、列表、元组等任何类型的数据,并且同一个列表中元素的类型也可以不同。比如说:
["人生苦短,我要学Python!", 1, [2,3,4] , 3.0]
可以看到,列表中同时包含字符串、整数、列表、浮点数这些数据类型。
注意,在使用列表时,虽然可以将不同类型的数据放入到同一个列表中,但通常情况下不这么做,同一列表中只放入同一类型的数据,这样可以提高程序的可读性。
另外,在其它 Python 教程中,经常用 list 代指列表,这是因为列表的数据类型就是 list,通过 type() 函数就可以知道,例如:
>>> type( ["人生苦短,我要学Python!", 1, [2,3,4] , 3.0] )
<class 'list'>
可以看到,它的数据类型为 list,就表示它是一个列表。
Python创建列表
在 Python 中,创建列表的方法可分为两种,下面分别进行介绍。
1) 使用 [ ] 直接创建列表
使用[ ]创建列表后,一般使用=将它赋值给某个变量,具体格式如下:
listname = [element1 , element2 , element3 , ... , elementn]
其中,listname 表示变量名,element1 ~ elementn 表示列表元素。
例如,下面定义的列表都是合法的:
1. num = [1, 2, 3, 4, 5, 6, 7]
2. name = ["C语言中文网", "http://c.biancheng.net"]
3. program = ["C语言", "Python", "Java"]
另外,使用此方式创建列表时,列表中元素可以有多个,也可以一个都没有,例如:
emptylist = [ ]
这表明,emptylist 是一个空列表。
2) 使用 list() 函数创建列表
除了使用[ ]创建列表外,Python 还提供了一个内置的函数 list(),使用它可以将其它数据类型转换为列表类型。例如:
1. #将字符串转换成列表
2. list1 = list("hello")
3. print(list1)
4.
5. #将元组转换成列表
6. tuple1 = ('Python', 'Java', 'C++', 'JavaScript')
7. list2 = list(tuple1)
8. print(list2)
9.
10. #将字典转换成列表
11. dict1 = {'a':100, 'b':42, 'c':9}
12. list3 = list(dict1)
13. print(list3)
14.
15. #将区间转换成列表
16. range1 = range(1, 6)
17. list4 = list(range1)
18. print(list4)
19.
20. #创建空列表
21. print(list())
运行结果:
['h', 'e', 'l', 'l', 'o']
['Python', 'Java', 'C++', 'JavaScript']
['a', 'b', 'c']
[1, 2, 3, 4, 5]
[]
访问列表元素
列表是 Python 序列的一种,我们可以使用索引(Index)访问列表中的某个元素(得到的是一个元素的值),也可以使用切片访问列表中的一组元素(得到的是一个新的子列表)。
使用索引访问列表元素的格式为:
listname[i]
其中,listname 表示列表名字,i 表示索引值。列表的索引可以是正数,也可以是负数。
使用切片访问列表元素的格式为:
listname[start : end : step]
其中,listname 表示列表名字,start 表示起始索引,end 表示结束索引,step 表示步长。
以上两种方式我们已在《Python序列详解》中进行了讲解,这里就不再赘述了,仅作示例演示,请看下面代码:
url = list("一次编写,随处运行。")
#使用索引访问列表中的某个元素
print(url[3]) #使用正数索引
print(url[-4]) #使用负数索引
#使用切片访问列表中的一组元素
print(url[5: 9]) #使用正数切片
print(url[5: 9: 2]) #指定步长
print(url[-10: -5]) #使用负数切片
运行结果:
Python删除列表
对于已经创建的列表,如果不再使用,可以使用del关键字将其删除。
实际开发中并不经常使用 del 来删除列表,因为 Python 自带的垃圾回收机制会自动销毁无用的列表,即使开发者不手动删除,Python 也会自动将其回收。
del 关键字的语法格式为:
del listname
其中,listname 表示要删除列表的名称。
Python 删除列表实例演示:
1. intlist = [1, 45, 8, 34]
2. print(intlist)
3. del intlist
4. print(intlist)
运行结果:
[1, 45, 8, 34]
Traceback (most recent call last):
File "C:\Users\mozhiyan\Desktop\demo.py", line 4, in <module>
print(intlist)
NameError: name 'intlist' is not defined
相关推荐
- 写作排版简单三步就行-工具篇(作文排版编辑软件)
-
和我们工作中日常word排版内部交流不同,这篇教程介绍的写作排版主要是用于“微信公众号、头条号”网络展示。写作展现的是我的思考,排版是让写作在网格上更好地展现。在写作上花费时间是有累积复利优势的,在排...
- CSS继承的元素属性小总结(css 继承性)
-
所有元素可继承:visibility和cursor内联元素和块级元素可继承:letter-spacingword-spacingwhite-spaceline-heightcolorfontfont-...
- Cube 技术解读 | Cube 小程序技术详解
-
作者:曾维宏(恒实)“本文为《Cube技术解读》系列第三篇文章,之前上线的《支付宝新一代动态化技术架构与选型综述》《Cube卡片技术栈解读》欢迎大家回顾。”小程序作为动态化或者跨端开发的一种技术栈...
- “战斗民族”这样为新生儿检查?(战斗民族)
-
<fontface="近日,一条被称为“俄罗斯新生儿检查”的视频在微博疯传,视频中检查者粗鲁的动作让网友们纷纷感染“怪不得是战斗民族”。视频真实性有待考证,但宝宝出生后确实需要马不停蹄地做一系...
- 实测,大模型谁更懂数据可视化?(实测,大模型谁更懂数据可视化技术)
-
大家好,我是Ai学习的老章看论文时,经常看到漂亮的图表,很多不知道是用什么工具绘制的,或者很想复刻类似图表。实测,大模型LaTeX公式识别,出乎预料前文,我用Kimi、Qwen-3-235B...
- 「Python爬虫」:破解网站字体加密和反反爬虫
-
前言:字体反爬,也是一种常见的反爬技术,例如58同城,猫眼电影票房,汽车之家,天眼查,实习僧等网站。这些网站采用了自定义的字体文件,在浏览器上正常显示,但是爬虫抓取下来的数据要么就是乱码,要么就是变成...
- 转录组及可视化分析——样本间相关性绘图
-
背景介绍在进行正式的转录组分析之前,一般可以先对样本的相关性进行绘图,用于观察各个组之间或组内样本的相关性。数据介绍数据的话我们采用的是送样测序公司反馈给我们的gene_count文件,格式如下:...
- 阿里巴巴矢量图标库 iconfont 的使用方法
-
xx-blog主题使用的图标库是阿里巴巴的iconfont,因此这里介绍一下此主题库的用法。首先去iconfont主题库,注册一个账号,然后就可以找自己喜欢的图标了,找到后点击添加购物车,就回到了右侧...
- 五行取名(五行取名的正确方法)
-
1、五行的分类原则以方位来论:东方属木;南方属火;西方属金;北方属水;中央属土。以季节来论:春季属木;夏季属火;秋季属金;冬季属水;季末属土。以气候来论:风属木;暑属火;燥属金;寒属水;湿属土。以颜色...
- 4K显示器软件界面字体过小解决方法
-
用4K显示器(win10或者win11下)的朋友会发现一些软件并不能随着系统的字体放大而放大字体,用起来很不方便。譬如常用的ps或者行业专用软件。笔者经过摸索,发现这样设置一下可以解决。下面以Psc...
- VBA之Word应用:利用Range方法进行字体及对齐方式设置
-
《VBA之Word应用》(版权10178982),是我推出第八套教程,教程是专门讲解VBA在Word中的应用,围绕“面向对象编程”讲解,首先让大家认识Word中VBA的对象,以及对象的属性、方法,然后...
- 办公小技巧:告别侵权 PPT字体自己造
-
很多朋友还不知道,我们每天面对的字体都是有版权保护的,如果对这方面的内容不了解,一不小心就可能造成侵权。那么我们在日常设计PPT文稿的时候,如何避免字体侵权呢?首先我们得懂得如何查看版权信息,另外还需...
- 显示器颜色显示有偏差?你校准过吗?
-
编辑:晴晨购物、拍照、做视频、玩游戏……看似不一样的操作都怕一件事:颜色有偏差。购物时商品颜色有出入,毫不知情的情况下把责任推给了商家,那么拍照、做视频、玩游戏呢?我们先来看看某网友的诉苦:“我的是台...
- 设计字体那些事(设计字体种类大全图)
-
做设计几年,平均每年都能遇见好多因为字体侵权的事情,今天就结合我自己的经验和了解简单介绍下字体那些事#毒角SHOW角角用了这款字体,竟被送律师函赔偿10万https://www.douyin.com...
- LCD智能显示模块-绘图板(lcd显示模块流程图)
-
TOPWAY智能模块(SmartLCD)是专门为工业显示应用而设计的TFT液晶显示模块。我司自主研发的界面编辑软件RGTools/SGTools提供了18个控件,通过些控件能实现丰富的显...
- 一周热门
- 最近发表
- 标签列表
-
- HTML 教程 (33)
- HTML 简介 (35)
- HTML 实例/测验 (32)
- HTML 测验 (32)
- JavaScript 和 HTML DOM 参考手册 (32)
- HTML 拓展阅读 (30)
- HTML常用标签 (29)
- HTML文本框样式 (31)
- HTML滚动条样式 (34)
- HTML5 浏览器支持 (33)
- HTML5 新元素 (33)
- HTML5 WebSocket (30)
- HTML5 代码规范 (32)
- HTML5 标签 (717)
- HTML5 标签 (已废弃) (75)
- HTML5电子书 (32)
- HTML5开发工具 (34)
- HTML5小游戏源码 (34)
- HTML5模板下载 (30)
- HTTP 状态消息 (33)
- HTTP 方法:GET 对比 POST (33)
- 键盘快捷键 (35)
- 标签 (226)
- HTML button formtarget 属性 (30)
- CSS 水平对齐 (Horizontal Align) (30)