猪行天下之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'>


目录
打赏
0
0
0
0
7
分享
相关文章
深入探讨 Python 列表与元组:操作技巧、性能特性与适用场景
Python 列表和元组是两种强大且常用的数据结构,各自具有独特的特性和适用场景。通过对它们的深入理解和熟练应用,可以显著提高编程效率和代码质量。无论是在数据处理、函数参数传递还是多线程环境中,合理选择和使用列表与元组都能够使得代码更加简洁、高效和安全。
32 9
[oeasy]python069_当前作用域都有些什么_列表dir_函数_builtins
本文介绍了Python中`dir()`函数的使用方法及其作用。`dir()`可以列出当前作用域内的所有变量和成员,类似于`locals()`,但`dir()`不仅限于本地变量,还能显示模块中的所有成员。通过`dir(__builtins__)`可以查看内建模块中的所有内建函数,如`print`、`ord`、`chr`等。此外,还回顾了`try-except-finally`结构在数据库连接中的应用,并解释了为何`print`函数可以直接使用而无需导入,因为它位于`__builtins__`模块中。最后,简要提及了删除`__builtins__.print`的方法及其影响。
26 0
|
3月前
|
Python列表
Python列表。
64 8
[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
55 9
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
90 14
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
173 10
Python中的列表推导式:简洁高效的数据处理
在编程世界中,效率和可读性是代码的两大支柱。Python语言以其独特的简洁性和强大的表达力,为开发者提供了众多优雅的解决方案,其中列表推导式便是一个闪耀的例子。本文将深入探讨列表推导式的使用场景、语法结构及其背后的执行逻辑,带你领略这一特性的魅力所在。
探索Python中的列表推导式:简洁而强大的工具
【10月更文挑战第41天】 在编程的世界中,效率与简洁是永恒的追求。本文将深入探讨Python编程语言中一个独特且强大的特性——列表推导式(List Comprehension)。我们将通过实际代码示例,展示如何利用这一工具简化代码、提升性能,并解决常见编程问题。无论你是初学者还是资深开发者,掌握列表推导式都将使你的Python之旅更加顺畅。
探索Python中的列表推导式
【10月更文挑战第38天】本文深入探讨了Python中强大而简洁的编程工具——列表推导式。从基础使用到高级技巧,我们将一步步揭示如何利用这个特性来简化代码、提高效率。你将了解到,列表推导式不仅仅是编码的快捷方式,它还能帮助我们以更加Pythonic的方式思考问题。准备好让你的Python代码变得更加优雅和高效了吗?让我们开始吧!
Python高手秘籍:列表推导式与Lambda函数的高效应用
列表推导式和Lambda函数是Python中强大的工具。列表推导式允许在一行代码中生成新列表,而Lambda函数则是用于简单操作的匿名函数。通过示例展示了如何使用这些工具进行数据处理和功能实现,包括生成偶数平方、展平二维列表、按长度排序单词等。这些工具在Python编程中具有高度的灵活性和实用性。
69 2

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等