个人主页:丷从心·
系列专栏:Python基础
学习指南:Python学习指南
什么是列表
- 如下定义的变量
last_names
的数据类型是列表
last_names = ['赵', '钱', '孙', '李', '周', '吴']
print(last_names)
['赵', '钱', '孙', '李', '周', '吴']
- 通过
type()
函数可以查看变量last_names
的数据类型
last_names = ['赵', '钱', '孙', '李', '周', '吴']
print(type(last_names))
<class 'list'>
索引
- 索引就是标记内存空间地址的一个数字,也可以称为下标
- 对于列表
last_names = ['赵', '钱', '孙', '李', '周', '吴']
,索引从 0 0 0开始,在内存中的存储方式如下
索引0 | 索引1 | 索引2 | 索引3 | 索引4 | 索引5 |
---|---|---|---|---|---|
赵 | 钱 | 孙 | 李 | 周 | 吴 |
- 索引也可以为负数,对于列表
last_names = ['赵', '钱', '孙', '李', '周', '吴']
,索引为负数时的情况如下
索引-1 | 索引-2 | 索引-3 | 索引-4 | 索引-5 | 索引-6 |
---|---|---|---|---|---|
吴 | 周 | 李 | 孙 | 钱 | 赵 |
示例
- 通过使用
[]
加上索引的方式获取对应索引处的数据
last_names = ['赵', '钱', '孙', '李', '周', '吴']
print(last_names[0])
print(last_names[1])
print(last_names[2])
赵
钱
孙
last_names = ['赵', '钱', '孙', '李', '周', '吴']
print(last_names[-1])
print(last_names[-2])
print(last_names[-3])
吴
周
李
索引越界
- 索引对应内存地址,是有范围的,对于列表
last_names = ['赵', '钱', '孙', '李', '周', '吴']
,其索引范围为 0 0 0到 5 5 5,如果使用索引“ 6 6 6”会发生索引越界,产生异常
last_names = ['赵', '钱', '孙', '李', '周', '吴']
print(last_names[6])
Traceback (most recent call last):
File "C:/Users/FOLLOW_MY_HEART/Desktop/Python Basics/【Python基础】列表/test.py", line 3, in <module>
print(last_names[6])
IndexError: list index out of range
切片
- 切片就是截取操作对象中一部分数据的操作,例如对于列表
last_names = ['赵', '钱', '孙', '李', '周', '吴']
,可以通过切片获取到子列表['赵', '钱', '孙']
语法
list_object[起始索引:结束索引:步长]
- 选取的数据范围从“起始索引”开始,到“结束索引”结束,但不包含结束索引处的数据,即数据只取到结束索引的前一位
- 步长表示选取数据的间隔,不使用步长时默认步长为 1 1 1
示例
步长为正
- 选取索引 0 0 0到 2 2 2包含的元素(不包含索引 3 3 3处的元素)
last_names = ['赵', '钱', '孙', '李', '周', '吴']
print(last_names[0:3])
['赵', '钱', '孙']
- 如果“起始索引”为空则表示起始索引为 0 0 0
last_names = ['赵', '钱', '孙', '李', '周', '吴']
print(last_names[:3])
['赵', '钱', '孙']
- 如果“结束索引”为空则表示从起始索引开始一直取到列表末尾
last_names = ['赵', '钱', '孙', '李', '周', '吴']
print(last_names[3:])
['李', '周', '吴']
- 选取索引 1 1 1到最后一个元素之前的元素(通过负数索引的方式)
last_names = ['赵', '钱', '孙', '李', '周', '吴']
print(last_names[1:-1])
['钱', '孙', '李', '周']
- 以 2 2 2为步长从列表开头取到列表末尾
last_names = ['赵', '钱', '孙', '李', '周', '吴']
print(last_names[::2])
['赵', '孙', '周']
步长为负
- 如果步长为负,表示从右向左选取数据,此时“起始索引”应大于“结束索引”
last_names = ['赵', '钱', '孙', '李', '周', '吴']
print(last_names[3:0:-1])
['李', '孙', '钱']
-
- 此时从右向左取到的是索引 3 3 3到索引 1 1 1包含的元素,不包含索引 0 0 0处的元素
-
从列表末尾取到列表开头的元素(列表倒序)
last_names = ['赵', '钱', '孙', '李', '周', '吴']
print(last_names[::-1])
['吴', '周', '李', '孙', '钱', '赵']
遍历列表
什么是遍历
- 遍历就是通过循环的方式从
string
、list
、tuple
、dict
、set
等序列数据类型中依次获取元素,这个过程称为遍历
for循环遍历
last_names = ['赵', '钱', '孙', '李', '周', '吴']
for last_name in last_names:
print(last_name)
赵
钱
孙
李
周
吴
while循环遍历
last_names = ['赵', '钱', '孙', '李', '周', '吴']
i = 0
while i < len(last_names):
print(last_names[i])
i += 1
赵
钱
孙
李
周
吴
len()
方法用于获取列表的长度
列表操作
增加元素
append()方法
list_object.append(element)
append()
方法用于向列表末尾追加元素
last_names = ['赵', '钱', '孙']
print(last_names)
last_names.append('李')
print(last_names)
['赵', '钱', '孙']
['赵', '钱', '孙', '李']
insert()方法
list_object.insert(index, element)
insert()
方法用于向列表指定索引位置插入元素
number_list = [1, 2, 3]
number_list.insert(1, 0)
print(number_list)
[1, 0, 2, 3]
number_list.insert(1, 0)
表示向列表number_list
的索引 1 1 1处插入元素 0 0 0
extend()方法
list_object.extend(list_obj)
extend()
方法用于将另一个列表的元素逐一向列表末尾进行追加
last_names_1 = ['赵', '钱', '孙']
last_names_2 = ['李', '周', '吴']
last_names_1.extend(last_names_2)
print(last_names_1)
['赵', '钱', '孙', '李', '周', '吴']
修改元素
list_object[index] = new_element
- 修改列表元素只需通过索引确定需要修改的元素,然后对该元素重新赋值
number_list = [1, 2, 3]
number_list[0] = 0
print(number_list)
[0, 2, 3]
查询元素
in
in
用于查询列表中是否存在指定元素,如果存在那么结果为True
,否则结果为False
number_list = [1, 2, 3]
print(0 in number_list)
False
not in
not in
用于查询列表中是否不存在指定元素,如果不存在那么结果为True
,否则结果为False
number_list = [1, 2, 3]
print(0 not in number_list)
True
count()方法
list_object.count(element)
count()
方法用于查询指定元素在列表中出现的次数
number_list = [1, 2, 3, 6, 6, 6]
times = number_list.count(6)
print(times)
3
删除元素
del
del list_object[index]
del
用于删除列表指定索引处的元素
number_list = [1, 2, 3]
del number_list[0]
print(number_list)
[2, 3]
pop()方法
list_object.pop(index)
pop()
方法用于删除列表指定索引处的元素,默认情况下删除列表的最后一个元素,返回值为被删除的元素
number_list = [1, 2, 3]
popped_element = number_list.pop() # 默认情况下删除列表的最后一个元素, popped_element 用于接收 pop() 方法的返回值
print(popped_element)
print(number_list)
popped_element = number_list.pop(0)
print(popped_element)
print(number_list)
3
[1, 2]
1
[2]
remove()方法
list_object.remove(element)
remove()
方法用于删除列表指定元素值的元素
number_list = [1, 2, 3]
number_list.remove(1)
print(number_list)
[2, 3]
数据排序
sort()方法
list_object.sort(reverse=False)
sort()
方法用于将列表元素进行排序,默认情况下参数reverse=False
表示进行升序排序,如果reverse=True
则表示进行降序排序
number_list = [2, 1, 4, 3, 6, 5]
number_list.sort()
print(number_list)
[1, 2, 3, 4, 5, 6]
number_list = [2, 1, 4, 3, 6, 5]
number_list.sort(reverse=True)
print(number_list)
[6, 5, 4, 3, 2, 1]
reverse()方法
list_object.reverse()
reverse()
方法用于将列表倒序
number_list = [2, 1, 4, 3, 6, 5]
number_list.reverse()
print(number_list)
[5, 6, 3, 4, 1, 2]