作者:大家好,我是阿旭
支持我:点赞收藏⭐️留言
系列专栏:
Python列表是最通用的数据类型之一,它允许我们同时处理多个元素。
例如:
# 编程语言列表
['Python', 'C++', 'JavaScript']
在Python中,通过将元素放在用逗号分隔的方括号[]中创建列表。
# 数字列表
my_list = [1, 2, 3]
一个列表可以有任意数量的项,它们可以是不同类型的(整数、浮点数、字符串等)。
# 空列表
my_list = []
# 存储不同类型的数据
my_list = [1, "Hello", 3.4]
一个列表还可以将另一个列表作为元素,这叫做嵌套列表。
# 嵌套列表
my_list = ["mouse", [8, 4, 6], ['a']]
访问列表元素的方法有很多种。
我们可以使用索引操作符[]来访问列表中的项。在Python中,索引从0开始。所以,一个有5个元素的列表的索引从0到4。
试图访问这些以外的索引将引发IndexError。索引必须为整数。我们不能使用float或其他类型,这将导致TypeError。
使用嵌套索引访问嵌套列表。
my_list = ['p', 'r', 'o', 'b', 'e']
# 第一个元素
print(my_list[0]) # p
# 第三个元素
print(my_list[2]) # o
# 第五个元素
print(my_list[4]) # e
# 嵌套列表
n_list = ["Happy", [2, 0, 1, 5]]
print(n_list[0][1])
print(n_list[1][3])
# 错误!索引只能使用整数
print(my_list[4.0])
输出
p
o
e
a
5
Traceback (most recent call last):
File "" , line 21, in <module>
TypeError: list indices must be integers or slices, not float
Python允许对其序列进行负索引。-1的索引指向最后一项,-2指向最后一项,以此类推。
# 列表中的负索引
my_list = ['p','r','o','b','e']
# 最后一个元素
print(my_list[-1])
# 倒数第五个元素
print(my_list[-5])
输出
e
p
我们可以通过使用切片操作符:来访问列表中的一段数据项。
# Python中的列表切片
my_list = ['p','r','o','g','r','a','m','i','z']
# 索引2到索引4的元素
print(my_list[2:5])
# 从索引5到结束的元素
print(my_list[5:])
# 素从开始到结束
print(my_list[:])
输出
['o', 'g', 'r']
['a', 'm', 'i', 'z']
['p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z']
列表是可变的,这意味着它们的元素可以改变,不像字符串或元组。
可以使用赋值操作符=来更改一项或一组项的范围。
odd = [2, 4, 6, 8]
# 改变第一项
odd[0] = 1
print(odd)
# 改变索引为1,2,3的项
odd[1:4] = [3, 5, 7]
print(odd)
输出
[1, 4, 6, 8]
[1, 3, 5, 7]
我们可以使用append()方法向列表中添加一项,也可以使用extend()方法添加几项。
# 在Python中追加和扩展列表
odd = [1, 3, 5]
odd.append(7)
print(odd)
odd.extend([9, 11, 13])
print(odd)
输出
[1, 3, 5, 7]
[1, 3, 5, 7, 9, 11, 13]
我们也可以使用+操作符来合并两个列表。这也被称为连接。
*操作符重复给定次数的列表。
odd = [1, 3, 5]
print(odd + [9, 7, 5])
print(["re"] * 3)
输出
[1, 3, 5, 9, 7, 5]
['re', 're', 're']
此外,我们可以通过使用insert()方法在期望的位置插入一个项,或者通过将它压缩到列表的空片中插入多个项。
# Demonstration of list insert() method
odd = [1, 9]
odd.insert(1,3)
print(odd)
odd[2:2] = [5, 7]
print(odd)
输出
[1, 3, 9]
[1, 3, 5, 7, 9]
我们可以使用Python的del语句从列表中删除一个或多个条目。它甚至可以完全删除列表。
my_list = ['p', 'r', 'o', 'b', 'l', 'e', 'm']
# 删除一个元素
del my_list[2]
print(my_list)
# 删除多个元素
del my_list[1:5]
print(my_list)
# 删除列表
del my_list
# Error: List not defined
print(my_list)
输出
['p', 'r', 'b', 'l', 'e', 'm']
['p', 'm']
Traceback (most recent call last):
File "" , line 18, in <module>
NameError: name 'my_list' is not defined
我们可以使用remove()来删除给定的项,或者使用pop()来删除给定索引处的项。
如果没有提供索引,pop()方法将删除并返回最后一项。这有助于我们将列表实现为栈(先进,最后出的数据结构)。
而且,如果必须清空整个列表,可以使用clear()方法。
my_list = ['p','r','o','b','l','e','m']
my_list.remove('p')
# Output: ['r', 'o', 'b', 'l', 'e', 'm']
print(my_list)
# Output: 'o'
print(my_list.pop(1))
# Output: ['r', 'b', 'l', 'e', 'm']
print(my_list)
# Output: 'm'
print(my_list.pop())
# Output: ['r', 'b', 'l', 'e']
print(my_list)
my_list.clear()
# Output: []
print(my_list)
最后,我们还可以通过将一个空列表分配给一个元素片来删除列表中的项。
>>> my_list = ['p','r','o','b','l','e','m']
>>> my_list[2:3] = []
>>> my_list
['p', 'r', 'b', 'l', 'e', 'm']
>>> my_list[2:5] = []
>>> my_list
['p', 'r', 'm']
支持我:点赞收藏⭐️留言
系列专栏:14天玩转Python