Python3数据类型之列表(List)类型
程序员文章站
2022-06-14 21:09:58
...
1. 定义
1.1 简介
- 专门用于存储 一串数据,存储的数据成为元素
1.2 格式
list 用[]
定义,元素之间使用,
分割
1.3 特点
元素可以为不同类型
- 索引(index)就是元素在list中的位置编号
list的index从0
开始
"""
列表定义的格式:
列表变量的名字 = [元素1, 元素2, ……]
使用格式:
列表变量[位置]
位置:也叫下标、索引
"""
# 列表定义
name_list = ['mike', 'yoyo', 'rock', 'lily']
# 0 1 2 3
# -4 -3 -2 -1
# 最后一个元素取出来
print(name_list[3])
print(name_list[-1])
# 访问列表元素,不要超出范围,不要越界
# IndexError: list index out of range
# print(name_list[4])
- 注意:从list中取值时,如果超出索引范围,程序会报错
1.4 地位
- list是Python中使用最频繁的数据类型
2. 分类
- 里边元素时int型,为整型列表
- 里边元素为float型,为浮点型列表
- 里边元素为complex型,为复数型列表
- 里边元素时两种或三种都有的,为复合兴列表
3. 操作
3.1 基本运算
- 增加
- 格式:list.append(value)
- 说明:在list末尾追加数据
- 删除
- 格式1:list.remove(value)
- 说明:删除第一个出现的指定数据
- 格式2:list.pop(index)
- 说明:返回对应的值
- 修改
- 格式:list[index]=value
- 说明:修改指定index的数据,index不存在会报错
- 查询
- 查询元素是否存在:
- list[index]
- if value in list:
- 查询元素是否存在:
3.2 函数运算
- 查询list的长度:len(list)
- 查询list最大元素:max(list)
- 查询list最小元素:min(list)
- 逆置list:list.reverse()
- 清空list:list.clear()
3.3 常用操作
- 排序
- 格式:list.sort()
- 说明:升序排序
3.4 range
1. 定义
- range()方法/函数可创建一个整数列表对象,一般用于fro循环中
2. 使用
range(开始位置,结束位置,步长)
- 和切片用法差不多
# 1. 打印:0、1、2、3、4
# for i in range(5): # [0, 5)
for i in range(0, 5): # [0, 5)
print(i)
# 2. 1~100的累加
# 2.1 定义辅助变量
_sum = 0
# 2.2 for 控制循环范围
for i in range(1, 101):
# 2.3 累加
_sum += i
# 2.4 在循环外面打印累加结果
print(_sum)
# 3. 验证步长,打印:0、2、4
for i in range(0, 5, 2): # [0, 5)
print(i)
3.5 列表推导式
1. 定义
- 快速生成列表的表达形式,通过for添加元素的简介写法
- 格式:[计算公式 for 循环 if 判断]
- 特点
- 每循环一次,将计算公式的结果添加到列表中
- 计算公式可以使用遍历出的数据
- for遍历出的数据必须满足if判断才会使用计算机公式生成元素
# 普通方法:遍历0~4范围的元素,这些元素添加到列表中
# 1. 空列表
new_list = []
# 2. range(5)遍历取数
for i in range(5):
# 2.1 取出来的元素追加到列表
new_list.append(i)
# 3. 循环外面,打印结果
print(new_list)
print('='*30)
# 通过列表推导式,实现上面的效果 [计算公式 for循环体]
# 1. for i in range(5), 取出0,放在i变量中,i追加到列表
# 2. 循环下一步,取出2,放在i变量中,i追加到列表
# 重复,直到退出循环
new_list2 = [i for i in range(5)]
print(new_list2)
print('='*30)
# 0~10之间数,偶数才添加到列表
# 普通方法实现
# 1. 空列表
new_list = []
# 2. range(11)遍历取数
for i in range(11):
# 2.1 取出来的元素是偶数的话,追加到列表
# 2.2 i % 2 == 0, i 对 2求余,结果为0,就是偶数
if i % 2 == 0:
new_list.append(i)
# 3. 循环外面,打印结果
print(new_list)
print('='*30)
# 列表推导式实现
# [i for i in range(11) if i % 2 == 0]
# 1. for i in range(11)取第一个元素
# 2. if i % 2 == 0
# 3. 上面满足条件的i, 条件到列表
new_list2 = [i for i in range(11) if i % 2 == 0]
print(new_list2)
运行结果
[0, 1, 2, 3, 4]
==============================
[0, 1, 2, 3, 4]
==============================
[0, 2, 4, 6, 8, 10]
==============================
[0, 2, 4, 6, 8, 10]
- 能够使用列表推导使创建1-100之间元素的列表
# 通过列表推导式,实现上面的效果 [计算公式 for循环体]
# 1. for i in range(1, 101), 取出1,放在i变量中,i追加到列表
# 2. 循环下一步,取出2,放在i变量中,i追加到列表
# 重复,直到退出循环
new_list = [i for i in range(1, 101)]
print(new_list)
3. 嵌套
3.1 定义
- 一个list中的元素优势list,name这就是列表的嵌套
school_list = [['北京大学', '清华大学'], ['中山大学', '华南理工大学'], ['哈工大', '哈工程']]
# 0 1 2
# 取出第 2 个元素,也就是索引为1的元素
print(school_list[1]) # ['中山大学', '华南理工大学']
# 先取出索引为1的元素,再继续索引为1的元素
# ['中山大学', '华南理工大学']
# 0 1
print(school_list[1][1]) # '华南理工大学'
4. 迭代
4.1 定义
迭代也叫遍历,遍历循环
- 遍历就是 从头到尾 依次 从列表中取出每一个元素
4.2 操作
1. for遍历
- Python中专门提供 for循环 实现遍历
# 遍历,从头开始找,直到结束
name_list = ['mike', 'yoyo', 'rock', 'lily']
# 通过while实现遍历
# 1. 定义条件变量i = 0
i = 0
# 2. while i < 列表元素个数:
while i < len(name_list):
# 3. 取出某个元素,打印
name = name_list[i]
print(name)
# 4. 条件变量的修改
i += 1
print('==========华丽分割线=============')
# for遍历循环,和上面的while效果等价
# 从头到尾 依次从 列表 中取出 每一个元素
for name in name_list:
print(name)
2. for index in range(len(list))
2. if…in 和 for…in 的区别
- if…in:判断某个元素是否在列表中,如果在,if的条件为True
- for…in:从头到尾 依次从列表 中取出每一个元素
name_list = ['mike', 'yoyo', 'rock', 'lily']
# if…in:判断某个元素是否在列表中,如果在,if的条件为True
name = 'yoyo'
# name的内容'yoyo'是否在name_list列表中,如果在,name in name_list结果为True
if name in name_list:
print('%s 在列表中' % name)
print('==========华丽分割线=============')
# for…in:从头到尾 依次从 列表 中取出 每一个元素,这个元素给name赋值
for name in name_list:
print(name)
运行结果:
yoyo 在列表中
==========华丽分割线=============
mike
yoyo
rock
lily
4.3 for…else的使用
- for循环里面没有遇到break语句,for执行完后,则会执行else的分支
name_list = ['mike', 'yoyo', 'rock', 'lily']
for name in name_list:
print(name)
# 测试有break,和没有break的else执行情况
# if name == 'yoyo':
# break
else:
print('for循环里面没有遇到break语句,for执行完后,则会执行else的分支')
运行结果:
mike
yoyo
rock
lily
for循环里面没有遇到break语句,for执行完后,则会执行else的分支
5. 总结
5.1 定义列表的基本格式
"""
列表定义的格式:
列表变量的名字 = [元素1, 元素2, ……]
使用格式:
列表变量[位置]
位置:也叫下标、索引
"""
name_list = ['mike', 'yoyo', 'rock', 'lily']
# 0 1 2 3
# -4 -3 -2 -1
print(name_list[3])
5.2 常用操作
- 增加:list.append(value)
- 删除:list.remove(value)/list.pop(index)
- 修改:list[index]=value
- 查询
- list[index]
- len(list)
- if value in list:
5.3 for循环遍历列表
name_list = ['mike', 'yoyo', 'rock', 'lily']
# 从头到尾 依次从 列表 中取出 每一个元素,这个元素给name赋值
for name in name_list:
print(name)
上一篇: mail 失败了但是返回值是1