Python列表是一种有序的集合,可以随时添加和删除其中的元素,列表是Python中最常用的数据结构之一,它可以存储不同类型的元素,如整数、浮点数、字符串等,列表的元素可以是单个值,也可以是另一个列表(嵌套列表)。
1、创建列表
创建列表的方法有很多,以下是一些常见的方法:
- 使用方括号[]
创建一个空列表:empty_list = []
- 使用方括号[]
并在其中添加元素创建一个包含元素的列表:my_list = [1, 2, 3, 'hello', 5.0]
- 使用list()
函数将其他可迭代对象(如字符串、元组等)转换为列表:str_list = list('hello')
2、访问列表元素
要访问列表中的元素,可以使用索引,索引是从0开始的整数,表示元素在列表中的位置,要访问列表my_list
中的第一个元素(值为1),可以使用my_list[0]
,注意,如果尝试访问超出列表范围的索引,将引发IndexError
异常。
3、修改列表元素
可以通过索引来修改列表中的元素,要将列表my_list
中的第二个元素(值为2)更改为10,可以使用my_list[1] = 10
。
4、添加元素
可以使用append()
方法将元素添加到列表的末尾:my_list.append(6)
,这将使my_list
变为[1, 2, 3, 'hello', 5.0, 6]
,还可以使用切片操作将一个列表的元素添加到另一个列表的末尾:new_list = my_list + another_list
。
5、删除元素
可以使用del
关键字删除列表中的元素,要删除列表my_list
中的第三个元素(值为'hello'),可以使用del my_list[2]
,这将使my_list
变为[1, 2, 5.0, 6]
,还可以使用remove()
方法删除指定值的元素:my_list.remove('hello')
,这将使my_list
变为[1, 2, 5.0, 6]
,注意,如果尝试删除不存在于列表中的元素,将引发ValueError
异常。
6、列表切片
切片操作可以从列表中提取一部分元素,切片操作使用冒号分隔的起始和结束索引,格式为:start:end:step
,要从列表my_list
中提取从第一个元素到第四个元素(不包括第四个元素)的部分,可以使用切片操作:sub_list = my_list[0:3]
,这将使sub_list
变为[1, 2, 5.0]
,默认情况下,步长为1,即每次提取一个元素,可以通过设置步长来提取多个元素:要从列表中提取所有偶数元素,可以使用切片操作:even_numbers = my_list[::2]
,这将使even_numbers
变为[1, 5.0]
。
7、列表长度和容量
可以使用内置函数len()
获取列表的长度(即元素的数量):length = len(my_list)
,还可以使用内置函数capacity()
获取列表的容量(即分配给列表的内存大小):capacity = my_list.capacity()
,请注意,Python中的列表实际上是动态数组,因此其容量可能会随着元素的添加和删除而自动调整。
8、列表排序
可以使用内置函数sort()
对列表进行排序:my_list.sort()
,这将按照升序对列表进行排序,如果要按降序排序,可以设置参数:my_list.sort(reverse=True)
,还可以使用内置函数sorted()
对列表进行排序并返回一个新的已排序列表,而不改变原始列表:sorted_list = sorted(my_list)
。
9、列表推导式
列表推导式是一种简洁的创建新列表的方法,它使用一种类似于数学表达式的结构来生成新列表,要创建一个包含1到10之间所有偶数的列表,可以使用以下列表推导式:
even_numbers = [x for x in range(1, 11) if x % 2 == 0]
这将使even_numbers
变为[2, 4, 6, 8, 10]
。
10、列表方法
Python的列表还提供了许多有用的方法,如:
- count(value)
:计算列表中指定值出现的次数。
- index(value)
:返回指定值在列表中的第一次出现的索引,如果值不存在于列表中,将引发ValueError
异常。
- insert(index, value)
:在指定索引处插入值,如果索引超出范围,将引发异常。
- pop(index)
:删除并返回指定索引处的值,如果索引超出范围,将引发异常,如果不提供索引,将删除并返回最后一个值。
- remove(value)
:删除第一个匹配指定值的元素,如果值不存在于列表中,将引发异常。
- reverse()
:反转列表中的元素顺序。