Python列表的定义及使用
作者:一碗周 发布时间:2023-08-02 03:38:32
标签:Python,列表,定义,使用
1、定义和使用列表
在Python
中,列表是由一系列元素按照特定的顺序构成的数据结构,也就是说列表类型的变量可以存储多个数据,且可以重复。
1.1 定义列表
使用[]字面量语法定义变量,列表中的多个元素使用逗号,进行分割,
示例代码如下:
list1 = ["Hello", "一碗周", "你好"]
list2 = [1, 2, 3, 4, 5]
print(list1) # ['Hello', '一碗周', '你好']
print(list2) # [1, 2, 3, 4,5]
使用Python
内置的list将其他序列编程列表,示例代码如下:
list1 = list(range(10))
list2 = list("hello")
print(list1) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list2) # ['h', 'e', 'l', 'l', 'o']
列表是一种可变的数据类型,也就是可以对列表的的元素可以进行修改,这与字符串有显著的差别,对字符串类型进行修改后,都会返回新的字符串
1.2 访问列表中的值
如果访问列表中的某个值,使用下标索引来访问列表中的值,与字符串一样使用方括号的形式截取字符,示例代码如下:
list1 = ["Hello", "一碗周", "你好"]
# 列表的索引
print(list1[1]) # 一碗周
# 列表的切片
print(list1[1:3]) # ['一碗周', '你好']
1.3 列表的运算符
表和字符串类型一样,同样支持拼接、重复、成员运算等操作,
示例代码如下:
list1 = ["Hello"]
list2 = ["World"]
list3 = [1, 2, 3, 4, 5]
list4 = list(range(1, 6))
list5 = list1 + list2 # ['Hello', 'World']
print(list5)
list6 = list1 * 3 # ['Hello', 'Hello', 'Hello']
list7 = list3 * 2 # [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
print(list6)
print(list7)
print("W" in list1) # False
print("W" in list2) # False
# 列表的比较运算
# 两个列表比较相等性比的是对应索引位置上的元素是否相等
print(list3 == list4) # True
list8 = list(range(1, 7))
print(list3 == list8) # False
1.4 列表元素的遍历
遍历列表同遍历字符串是一样的,示例代码如下:
list1 = ["H", "e", "l", "l", "o"]
# 方法1
for index in range(len(list1)):
print(list1[index])
# 方法2
for ch in list1:
print(ch)
2、列表的方法
2.1 添加和删除元素
直接上代码
list1 = ["cute", "beautiful", "一碗周"]
# append()在列表尾部添加元素
list1.append("lovely")
print(list1) # ['cute', 'beautiful', '一碗周', 'lovely']
# insert()在列表指定索引位置插入元素
list1.insert(2, "prefect")
print(list1) # ['cute', 'beautiful', 'prefect', '一碗周', 'lovely']
# remove()删除指定元素
list1.remove("lovely")
print(list1) # ['cute', 'beautiful', 'prefect', '一碗周']
# pop()删除指定索引位置的元素
list1.pop(2)
print(list1) # ['cute', 'beautiful', '一碗周']
# clear()清空列表中的元素
list1.clear()
print(list1) # []
在Python
中也可以使用del关键字对列表元素进行删除,类似于pop
,示例代码↓
list1 = ["cute", "beautiful", "甜甜"]
del list1[1]
print(list1) # ['cute', '甜甜']
# 删除整个列表
del list1
print(list1) # NameError: name 'list1' is not defined
2.2 元素位置和次数
使用index()
来查找元素的位置,使用count()
来统计元素出现的次数
list1 = ["beautiful", "cute", "beautiful",
'prefect', "beautiful", "一碗周", 'lovely']
# 查找"beautiful"第一次出现的位置
print(list1.index("beautiful")) # 0
# 从第四个元素以后查找"beautiful"最近一次出现的位置
print(list1.index("beautiful", 3)) # 4
# 统计"beautiful"出现的次数
print(list1.count("beautiful")) # 3
2.3 元素排序和反转
使用sort()
方法可以实现列表元素的排序,而reverse()
方法可以实现元素的反转,示例代码↓
list1 = ["cute", "beautiful", "一碗周"]
list2 = list(range(10))
# 排序
list1.sort()
print(list1) # ['beautiful', 'cute', '一碗周']
# 反转
list1.reverse()
print(list1) # ['一碗周', 'cute', 'beautiful']
list2.reverse()
print(list2) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
# 前面的操作原来的列表进行修改,如果不让原来的数据被破坏可以使用copy()备份一份
list3 = list2.copy()
list3.sort()
print(list2) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
print(list3) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2.4 小结
3、列表的生成式
要求:为字符串123和字符串ABC创建一个笛卡尔积构成的列表,示例代码如下:
原始方法:
a = "123"
b = "ABC"
list1 = []
for x in a:
for y in b:
list1.append(x + y)
print(list1) # ['1A', '1B', '1C', '2A', '2B', '2C', '3A', '3B', '3C']
生成列方法:
a = "123"
b = "ABC"
list1 = [x + y for x in a for y in b]
print(list1) # ['1A', '1B', '1C', '2A', '2B', '2C', '3A', '3B', '3C']
这中方法不仅代码量少,而且性能上也要优于普通的for
循环和append
追加的方式
4、嵌套的列表
因为列表里面的变量可以存储多种数据类型,就出现了列表里面有列表的时候,称之为列表的嵌套,示例代码如下:
list1 = [["cute", "beautiful", "一碗周"], "cute", "beautiful", "一碗周"]
print(list1[0]) # ['cute', 'beautiful', '一碗周']
print(list1[1]) # cute
# 如果想要查看被嵌套的那个cute则需要使用多个索引值
print(list1[0][0]) # cute
不管嵌套多少都是同理的
来源:https://juejin.cn/post/7022986018332606471
0
投稿
猜你喜欢
- Sql Server 中一个非常强大的日期格式化函数: 获得当前系统时间,GETDATE(): 2008年01月08日 星期二 14:59
- 有这样一个要求,它要创建一个SQL Server查询,其中包括基于事件时刻的累计值。典型的例子就是一个银行账户,因为你每一次都是在不同的时间
- 这样做的好处是:利用表格来装载数据,不言而喻是最好的,你可以很灵活的为每个单元格定义样式。下面是具体的做法首先在photoshop设计一个效
- 这篇文章主要从基本情况、成本、优缺点和应用场合等方面对5种MySQL的可靠性方案进行了详细的分析和比较,另外,本文对MySQL数据库的开发和
- 如何用METADATA替换ADOVBS.INC? 在ASP中,使用组件时,如ADO,得先包含
- 一、http协议无状态问题http协议没有提供多次请求之间的关联功能,协议的本意也并未考虑到多次请求之间的状态维持,每一次请求都被协议认为是
- 打过了趟深圳回来后,已经快半个月,在广州购书中心逛了下,发现2本前端书《重构HTML-改善WEB应用的设计》、《CSS3 实战》,看了一半《
- 我们已经知道,null 没有任何的属性值,并且无法获取其实体(existence)值。所以 null.property 返回的是错误(err
- 采集文章给建站带来了很大的方便,特别是一些小网站,人员有限,资金有限,适当的使用采集功能可以很快丰富我们的网站,采集这么厉害可能你会觉的代码
- 很多组织机构慢慢的在不同的服务器和地点部署SQL Server数据库——为各种应用和目的&m
- 安装时建议你为MySQL管理创建一个用户和组。由该组用户运行mysql服务器并执行管理任务。(也可以以root身份运行服务器,但是不推荐)第
- SQL Server2005扩展函数已经不是一件什么新鲜的事了,但是我看网上的大部分都是说聚合函数,例子也比较浅,那么这里就讲讲我运用扩展函
- 当我们在网页中使用flash时,有时候外面会发现flash会遮住了我们的网页内容,特别是当页面中有浮动的元素时。那么怎么样才能让div层显示
- 关于采集-防采集的我想大家都很清楚。这个就不多说,采集最终还是从页面源代码入手,所以只要没有规律想采集就难!由于一天自己在策划某个网站的时候
- 我在跑爬虫程序的时候,由于爬虫程序的等待目标服务器返回数据的时间很长,而cpu占用很低,所以经常挂着代理一跑就跑好几百个。但是爬虫程序通常是
- 测试sql: 代码如下:SET STATISTICS IO ON SET STATISTICS TIME ON SELECT COUNT(1
- 首先恭喜月影,当然希望好书大卖!原文提供了样章下载1.1M,pdf格式的。如果大家想下载可以访问源地址:http://bbs.51js.co
- 计是一个输入-输出的过程,因为首先有用户的需求,客户的项目才有设计的产生,设计是带有目的性和市场行为的,当然也有一部分的创造性设计,仅仅为了
- 要真说出来哪一个函数能够做得到,还真难。但我们可用下面的代码来进行识别,返回“假”即偶数,返回“真”则奇数: function&n
- 保护你的ASP页面的两种办法 有时候你只想让人们从你的站点来访问你的某些页面, 而不允许他们从其它站点的非法链接中到达这些页面。在你想保护的