猪行天下之Python基础——3.2 列表 & 元组

简介: 内容简述:1、列表(List)2、元组(Tuple)

1、列表(List)


列表、元组和字符串因为成员有序,可以通过下标访问,又称为「序列」。列表有序内容长度可变,使用中括号[]表示元素间用逗号分隔,元素的数据类型可以不一样!列表的相关的操作有:「元素访问,切片,修改,追加,插入,删除,扩展,统计,排序,下标获取,拷贝


① 列表创建


直接把元素放在中括号[]中,用逗号进行分隔,比如:


data_list = [1,2,0,"a",True]


② 访问列表元素


列表是有序的,可以通过「下标索引」来访问列表中的元素,可以从左开始索引,也可以从右开始索引。从左开始索引的下标范围:[0, 列表长度-1]从右开始索引的下标范围:[-1, 列表长度],如果索引下标不在范围里的话,会报数组越界错误!代码示例如下:


num_list = [1,2,3,4,5]
print(num_list[0])
print(num_list[-3])
print(num_list[5])


运行结果如下


1
3
IndexError: list index out of range


③ 列表切片


通过索引的方式只能获取一个元素,如果想获取多个元素呢?只能通过多个下标先获取多个元素


再另外拼接一个列表么?当然不用,Python为我们提供了强大的「切片操作」。通过「:(冒号)分割前后索引来实现,要注意索引的边界是顾头不顾尾,比如a[1:3],包含的是a[1],a[2],不包含a[3]!详细用法示例如下:


num_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 截取[0,2)间的数据,输出结果:[0, 1]
print(num_list[0:2])
# 截取[1,9],输出结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]
print(num_list[1:])
# 截取[0,7],输出结果:[0, 1, 2, 3, 4, 5, 6, 7]
print(num_list[:-2])
# 截取所有元素,输出结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(num_list[:])
# 截取[0,10)的元素,步长为2,输出结果:[0, 2, 4, 6, 8]
print(num_list[0:10:2])
# 截取[2,10)的元素,步长为3,输出结果:[2, 5, 8]
print(num_list[2::3])


④ 更新、追加、插入列表元素


更新 列表元素 直接通过下标索引获得对应元素进行修改 即可,比如上面的num_list,修改第二个元素的值只需:num_list[1] = 'xxx',另外,如果你不知道修改的元素下标索引是哪一个,但是你知道元素的值,可以先通过 index("元素的值") 找到对应的下标索引值,再去修改元素的值。


追加列表元素可以通过 append函数 在列表的表位追加一个元素,比如num_list调用append(10)后,追加后列表里的元素就变成了 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10]。append函数只是在队尾插入一个元素,如果想插入到特定位置则需要使用insert函数 了。参数有两个,插入的下标位置(从0开始)插入元素值。比如num_list调用insert(3, 2.5)后的列表:[0, 1, 2, 2.5, 3, 4, 5, 6, 7, 8, 9, 10]


⑤ 删除列表元素


删除这里要分清楚是「想删除整个列表」还是「删除列表里某个元素」,代码示例如下:


num_list = [0, 1, 2, 3, 4, 5]
# remove()直接对列表中的元素进行检索删除,根据值不是下标,返回删除后的列表
num_list.remove(2)
print(num_list)
# del()根据下标进行检索删除,不返回删除值
del num_list[2]
print(num_list)
# pop()根据下标进行检索删除,不填下标默认删除最后一项,返回删除值
num_list.pop()
print(num_list)
# 删除列表引用
del num_list
print(num_list)


运行结果如下


[0, 1, 3, 4, 5]
[0, 1, 4, 5]
[0, 1, 4]
NameError: name 'num_list' is not defined


⑥ 列表遍历


可以通过循环对列表进行遍历,遍历的方式有多种,代码示例如下:


num_list = [0, 1, 2, 3, 4, 5]
for num in num_list:
    print(num, end='\t')
for index in range(0, len(num_list)):
    print(num_list[index], end='\t')
for index, value in enumerate(num_list):
    print('index = %d values = %d' % (index, value))


运行结果如下


0    1    2    3    4    5    
0    1    2    3    4    5    
index = 0 values = 0
index = 1 values = 1
index = 2 values = 2
index = 3 values = 3
index = 4 values = 4
index = 5 values = 5


⑦ 列表的其他操作


除了上面的这些常用操作外,还有一些其他的操作,使用代码示例如下:


a_list = [1, 2.0, 'a', True]
b_list = [3, 2, 9, 4, 11]
# 列表脚本操作符:可以使用+号组合列表,*号重复列表
print(a_list + a_list)
print(a_list * 2)
# 判断元素是否在列表中
print('a' in a_list)
# 获得列表长度
print('列表长度:%d' % len(a_list))
# 统计元素在列表中出现的次数,True的值也是1
print('列表中1出现的次数 %d' % a_list.count(1))
# 统计最大值,最小值,列表元素类型需要为数字
print('列表中的最大值 %d' % max(b_list))
print('列表中的最小值 %d' % min(b_list))
# 排序,本地排序(会修改值),返回None,只能比较数字!默认从小到大,
# 从大到小可以用可选参数,括号里加上key = lambda x:-1*x
b_list.sort()
print('升序排列:%s' % b_list)
b_list.sort(key=lambda x: -1 * x)
print('降序排列:%s' % b_list)
# 列表元素反转,会修改列表,返回None
a_list.reverse()
print('反转后的列表:%s' % a_list)
# extend()函数,在列表末尾一次性追加另一个列表中的多个值
a_list.extend(b_list)
print("追加后的列表:",a_list)


运行结果如下


[1, 2.0, 'a', True, 1, 2.0, 'a', True]
[1, 2.0, 'a', True, 1, 2.0, 'a', True]
True
列表长度:4
列表中1出现的次数 2
列表中的最大值 11
列表中的最小值 2
升序排列:[2, 3, 4, 9, 11]
降序排列:[11, 9, 4, 3, 2]
反转后的列表:[True, 'a', 2.0, 1]
追加后的列表: [True, 'a', 2.0, 1, 11, 9, 4, 3, 2]


4、元组(Tuple)


元组,「受限的列表」,元组中的元素不能修改,使用()小括号 表示。如果元组中只有一个元素,需要在元素后添加逗号,比如(1,),否则会被当做括号运算符使用!!!比起列表,元组占用更少的内存,常会用作不能修改的参数传递给函数。除了没有修改元素的函数外,其他的函数和列表基本一致,还提供了一个tuple()函数用于:将字符串和列表转换为元组


另外还有一点要注意:


如果在新建变量的时候,没有小括号包裹,只用逗号分隔,Python也会把这个变量认做元组,比如:a = 1,2,3,4,如果此时调用print(type(a)),输出的结果会是:<class 'tuple'>


相关文章
|
1月前
|
缓存 监控 数据可视化
微店item_search - 根据关键词取商品列表深度分析及 Python 实现
微店item_search接口可根据关键词搜索商品,返回商品信息、价格、销量等数据,适用于电商检索、竞品分析及市场调研。接口需通过appkey与access_token认证,支持分页与排序功能,Python示例代码实现调用流程,助力商品数据高效获取与分析。
|
5天前
|
开发者 Python
Python神技:用列表推导式让你的代码更优雅
Python神技:用列表推导式让你的代码更优雅
211 99
|
12天前
|
程序员 Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
213 99
|
4月前
|
测试技术 数据处理 Python
Python列表推导式:简洁高效的数据处理利器
Python列表推导式:简洁高效的数据处理利器
252 80
|
10天前
|
缓存 算法 数据安全/隐私保护
VVICitem_search - 根据关键词取关键词取商品列表接口深度分析及 Python 实现
VVIC item_search接口支持关键词搜索服装商品,提供价格、销量、供应商等数据,助力市场调研与采购决策。
|
13天前
|
自然语言处理 算法 数据安全/隐私保护
item_review - Lazada 商品评论列表接口深度分析及 Python 实现
Lazada商品评论接口(item_review)可获取东南亚多国用户评分、评论内容、购买属性等数据,助力卖家分析消费者偏好、优化产品与营销策略。
|
3月前
|
索引 Python 容器
[oeasy]python096_列表_计数函数_count
本教程详细介绍了Python中列表的计数方法`count`,包括其基本用法、与`len`函数的区别,以及如何结合索引操作查找和删除特定元素。同时探讨了字符串对象的`count`方法,并通过实例演示了如何统计字符出现次数。
68 7
|
3月前
|
测试技术 API 开发者
淘宝关键词搜索商品列表API接入指南(含Python示例)
淘宝关键词搜索商品列表API是淘宝开放平台的核心接口,支持通过关键词检索商品,适用于比价、选品、市场分析等场景。接口提供丰富的筛选与排序功能,返回结构化数据,含商品ID、标题、价格、销量等信息。开发者可使用Python调用,需注意频率限制与错误处理,建议先在沙箱环境测试。
|
2月前
|
安全 测试技术 数据处理
Python列表推导式进阶:从简洁代码到高效编程的10个核心技巧
列表推导式是Python中高效的数据处理工具,能将多行循环代码压缩为一行,提升代码可读性与执行效率。本文详解其基础语法、嵌套循环、条件表达式、函数融合、性能优化等进阶技巧,并结合实战案例与边界条件处理,帮助开发者写出更优雅、高效的Python代码。
119 0

推荐镜像

更多