python 第四天

1. 列表的介绍

为什么会使用容器型数据???

变量: 变化的数据

在编程中的操作 定义一个标识符 记录变化的数据

有些时候 需要记录数据的变化,变化的数据都保存起来,就需要容器型数据

1.列表list:

可变的有序型容器

可变:数据的值可以发生变化,可以修改/增加/删除

有序:容器存储放数据的时候,容器中有多少个数据,会给数据设置编号,编号是从0开始

可以通过编号定位获取这个位置的数据 , 也可以修改。

这个编号被称为下标/索引

根据再进行定义的时候,数据标识是[],在[]中定义多个数据,数据之间使用都好进行分隔

比如[19,24,26,22]

数据中的编号0 1 2 3

air_temp = 19

air_temp = 24

air_temp = 26

air_ temp = 22

air_temp_list = [19,24,26,22]
print(air_temp_list)

空列表

list0 = []

2.列表的操作

1.获取列表中元素的个数

len(数据/变量名)

air_temp_list = [17,19,22,26,30,28,26]
print(len(air_temp_list))  # 7

2.下标:数据的一个编号,可以通过这个编号获取数据 也可以修改这个位置的数据

一般的编程语言中 编号就是从左向右 从0开始 加1递增

Python对于下标有两种表达方式

1.正向索引 --- 从左向右 len(数据)

2.负向索引 --- 从右向左 -len(数据)

获取数据的时候可以使用正向索引 也可以使用负向索引

格式:

列表数据[下标] ===》代表的是获取这个位置的数据

列表数据[下标] = 数据值 ===》修改这个位置的数据

注意:

下标不能超过编号的界限,否则报错

air_temp_list = [17,19,22,26,30,28,26]
print(air_temp_list[1])
print(air_temp_list[-len(air_temp_list) - 1])
air_ temp_list.pop()
# 把最后一个删除
air_temp_list[6]
# 报错了会 indexError:list index out of range
# 获取倒数第一个位置
print(air_temp_list[len(air_temp_list) - 1])  # 正向索引
print(air_temp_list[-1])  # 负向索引

# 修改这个位置的错误
air_temp_list[-3] = 33
print(air_temp_list)

切片(slice):提取子序列

本质上根据下标定位到容器相应的位置 , 从指定的起始位置按照步长获取元素去

格式:

列表数据[起始下标:结束下标:步长]

解读:

1.步长可以省略,默认为1

列表数据[起始下标:结束下标]

代表从起始下标对应的元素开始 逐个取值 到结束下标对应的位置[结束下标不包含]

2.起始下标可以省略

看步长为正还是为负

正 代表从左边开始

负 代表从右边开始

3.结束下标也可以省略

看步长为正还是为负

正 代表从最右边开始

负 代表从最左边开始

scores = [76,28,39,45,57,82,91,68]
sub_scores = scores[1:7:1]
print(sub_scores)
# 等价于
sub_scores = scores[1:7]
print(sub_scores)
# 等价于 只是按照下标定位到列表相应的位置范围
sub_scores = scores[1:-1]
print(sub_scores)
# 前三个
sub_scores = scores[:3]
print(sub_scores)
# 后三个
sub_scores = scores[-3:]
print(sub_scores)
# 反转
sub_scores = scores[::-1]
print(sub_scores)
sub_scores = scores[::2]
print(sub_scores)

列表中增加数据的操作

1.列表数据.append(数据) 把数据追加在列表末尾

2.列表数据.insert(指定位置,数据) 在指定位置添加数据,原位置机器之后的数据都向后移一个

course_list = ['语文','数学','英语','体育']
# 增加一门python课程
course_list.append('Python')
print(coures_list)
# 在1的位置添加政治
course_list.insert(1,'政治')
print(course——list)

删除数据的操作

1.列表数据。remove(数据) 将数据在列表中移除 如果有多个数据的话只移除出现的第一个

2.列表数据.pop() 将最后一个元素移除

3.列表数据.pop(位置) 将指定位置的元素移除

4.列表数据.clear() 清空列表

course_list.remove('英语')
print(course_list)

course_list.pop()
print(course_list)

course_list.pop(0)
print(course_list)

course_list.clear()
print(course_list)

关于列表的遍历的操作

1.获取下标序列 根据下标提取数据值

2.遍历列表 获取列表中的元素

nums = [18,29,33,56,71,28,42,56,37]
for pos in range(len(nums)):
    print(nums[pos])

print('=======')
for ele in nums:
    print(ele)
    
# 获取列表中的偶数
# 定义一个新的列表 用来存储所有的偶数
even_list = []
for n in nums:
    if n % 2 == 0
        even_list.append(n)
print(n)
print('========')
# 获取所有偶数所在位置
pos_list = []
for i in range(len(nums)):
    if num[i] % 2 == 0:
        pos_list.append(i)
print(pos_list)
# 获取所有的偶数及其对应的位置
# 遍历位置
for j in range(len(nums)):v2
    if nums[j] % 2 == 0:
        print(j, nums[j])
print('=========')
# enumerate(有序容器数据) ====》产生一个新的容器  [[位置, 元素], [位置, 元素]]
# 二维结构
for item in enumerate(nums):
    print(item)

# 拆包: 把容器中的数据赋值给N个变量, 把容器拆解 这个过程叫做拆包
a, b = [11, 23]
print(a, b)
print('=======')
# 利用拆包的原理
for p, e in enumerate(nums):
    # p接受的位置  e接受的元素
    if e % 2 == 0:
        print(p, e)

列表推导式 产生新列表 -- 遍历简化的格式 [变量 for 变量 in 容器型数据 if判断条件]

"""
even_list = []
for n in nums:
    if n % 2 == 0:
        even_list.append(n)
print(even_list)
"""

result = [n for n in nums if n % 2 == 0]
print(result)

# 有些需求不一定是有判断的  if判断条件的存在是按照需求来决定有或者没有的
values = [1, 2, 3, 4, 5]
# ====> [1, 4, 9, 16, 25]
pow_list = []
for d in values:
    pow_list.append(d ** 2)
print(pow_list)

print([d ** 2 for d in values])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DEsert__z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值