列表
Python中的列表是一种**可变的序列数据类型**,它允许存储一系列有序的元素,这些元素可以是不同的数据类型,如整数、浮点数、字符串等。列表的特点包括:
- 索引和切片:可以通过索引访问列表中的单个元素,或通过切片操作获取列表的一部分。
- 可变性:列表是可变的,这意味着可以在列表中添加、删除或更改元素。
- 多样的操作:列表支持多种操作,如连接(使用`+`运算符)、重复(使用`*`运算符)以及成员查等。
- 方法:列表提供了一些内置的方法,如append()用于添加元素,remove()用于删除元素,sort()用于排序列表等。
列表还可以进行嵌套,即一个列表可以包含其他列表作为其元素,这为处理复杂的数据结构提供了便利。
总的来说,列表是Python编程中非常基础且功能强大的数据结构,广泛应用于各种程序设计场景中。
列表的创建
基本语法创建
a_list = ['1', '2', '3', '你好', '001']
b_list = [] # 空列表
print(a_list)
print(b_list)
"""
输出结果
['1', '2', '3', '你好', '001']
[]
"""
list()创建
使用list()可将迭代的数据转化为列表形式
c_list = list() # 空列表
d_list = list(range(10))
e_list = list("Hello,World!")
print(c_list)
print(d_list)
print(e_list)
"""
输出结果
[]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
['H', 'e', 'l', 'l', 'o', ',', 'W', 'o', 'r', 'l', 'd', '!']
"""
range创建整数序列
range的语法格式为range(start,end,step),start默认为0,step步长默认为1
f_list = list(range(1, 7, 2))
g_list = list(range(16, 3, -2))
print(f_list)
print(g_list)
"""
输出结果
[1, 3, 5]
[16, 14, 12, 10, 8, 6, 4]
"""
列表元素的增加与删除
列表元素的增加与删除在Python编程中扮演着重要的角色,它们使得列表这种数据结构非常灵活和强大。
列表元素的增加
运算符操作
a_list = [30, '你好', 'nihao']
b_list = ['world']
print(a_list+b_list)
print(a_list*3)
"""
输出结果
[30, '你好', 'nihao', 'world']
[30, '你好', 'nihao', 30, '你好', 'nihao', 30, '你好', 'nihao']
"""
append方法
append()
方法用于在列表末尾添加新的对象,它没有返回值,但会修改原来的列表。
a_list = list(range(6))
a_list.append(100)
print(a_list)
"""
输出结果
[0, 1, 2, 3, 4, 5, 100]
"""
extend操作
extend()
方法用于将一个可迭代对象的所有元素添加到列表的末尾。它没有返回值,但会修改原来的列表。
a_list = list(range(8))
print(a_list)
b_list = [100, 200]
c = 'nihao'
a_list.extend(b_list)
print(a_list)
a_list.extend(c)
print(a_list)
"""
输出结果
[0, 1, 2, 3, 4, 5, 6, 7]
[0, 1, 2, 3, 4, 5, 6, 7, 100, 200]
[0, 1, 2, 3, 4, 5, 6, 7, 100, 200, 'n', 'i', 'h', 'a', 'o']
"""
需要注意的是,extend()
方法可以接受任意数量的参数,而不仅仅是一个。这意味着可以使用多个参数来一次性添加多个元素。
与append()
方法不同,extend()
方法可以处理不同类型的元素,包括字符串、整数、浮点数、列表甚至其他更复杂的数据类型。
insert()操作
insert(index,object)
方法用于在列表的指定位置插入一个元素。它接受两个参数:
- index:要插入元素的索引位置(索引从0开始)。
- object:要插入的元素。
该方法会在指定的索引处插入给定的对象,并将该位置及之后的所有元素向右移动一位。如果指定的索引超过了列表的长度,那么元素将被添加到列表的末尾。
fruits = ['apple', 'banana', 'cherry']
fruits.insert(1, 'orange')
print(fruits)
"""
输出结果
['apple', 'orange', 'banana', 'cherry']
"""
列表元素的删除
del删除
删除指定位置元素,用法为del list[index]
a_list = [1, 2, 3, 23, 'nihao', '你好']
del a_list[2]
print(a_list)
"""
输出结果
[1, 2, 23, 'nihao', '你好']
"""
pop()方法
pop()方法用于移除列表中的一个元素,并返回该元素的值。它接受一个可选参数index,表示要移除元素的索引位置,默认值为-1,即移除并返回列表的最后一个元素。
- 移除最后一个元素:当不传入任何参数时,pop()会移除列表的最后一个元素,并返回该元素的值
a_list = list(range(15))
print(a_list.pop())
a_list.pop()
print(a_list)
"""
输出结果
14
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
"""
- 移除指定索引的元素:可以通过传入一个整数索引来移除列表中特定位置的元素。
a_list = list(range(15))
print(a_list.pop(2))
a_list.pop(2)
print(a_list)
"""
输出结果
2
[0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
"""
remove()方法
remove()
是 Python 列表(list)的一个方法,用于移除列表中第一个匹配的元素。如果元素不存在于列表中,则会引发 ValueError 异常。
a_list = [1,2,3,4,1,2,3,4,1,2,3,4]
a_list.remove(3)
print(a_list)
"""
输出结果
[1, 2, 4, 1, 2, 3, 4, 1, 2, 3, 4]
"""
列表元素的访问与计数
通过索引直接访问元素
超出索引会报错
a_list = list(range(10))
print(a_list[3])
# 输出结果:3
index()通过指定元素获取索引
作用是获得指定元素首次出现的索引位置,具体语法index(value,start,end)
a_list = [10, 20, 30, 40]
b_list = a_list*3
print(b_list.index(20))
# 从3开始索引
print(b_list.index(20, 3))
# 索引范围是8到11
print(b_list.index(20, 8, 11))
"""
输出结果:
1
5
9
"""
count()获得指定元素在列表中的次数
a_list = [1, 2, 3, 1, 2, 3, 1, 2, 3]
print(a_list.count(2))
# 输出结果为:3
len()返回列表长度
a_list = [1, 2, 3, 'nihao', '你']
b_list = a_list*3
print(len(a_list))
print(len(b_list))
"""
输出结果
5
15
"""
成员资格判断
在Python中,成员资格判断是用来确定一个元素是否存在于某个列表(或其他可迭代对象)中。这可以通过使用in关键字或not in关键字来实现。
使用 in关键字
当你想检查一个元素是否在列表中时,可以使用in关键字。如果元素存在于列表中,表达式会返回True;如果不存在,则返回False。
my_list = [1, 2, 3, 4, 5]
print(2 in my_list)
print(6 in my_list)
"""
输出结果:
True
False
"""
使用 not in 关键字
相反地,如果你想检查一个元素是否不在列表中,可以使用not in关键字。
my_list = [1, 2, 3, 4, 5]
print(2 not in my_list)
print(6 not in my_list)
"""
输出结果:
False
True
这些成员资格操作对于处理列表中的数据非常实用,尤其是在你需要根据元素的值来做出决策的时候。它们也适用于其他类型的集合,如元组、字典和集合等。
切片操作
其格式为[start:end:step]
my_list = list(range(15))
print(my_list)
# 提取整个列表
print(my_list[:])
# 提取后10位
print(my_list[5:])
# 提取第3位直到第8位
print(my_list[2:8])
# # 提取第3位直到第8位(以2为步长)
print(my_list[2:8:2])
# 从最后一位提取到第二位
print(my_list[15:0:-1])
"""
输出结果:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
[2, 3, 4, 5, 6, 7]
[2, 4, 6]
[14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
"""