序列、列表、列表的方法以及遍历序列

1、序列

1.1、概念

  • 序列是Python中最基本的一种数据结构。
  • 序列的作用是用来保存一组有序的数据。
  • 序列通过标记这些数据的位置来保持数据的有序性,位置标记即为索引或者下标
  • 在一个序列中,索引是唯一的
  • 第一个索引从0开始,第二个索引是1,以此类推
  • 索引的最大值 = 序列的长度 - 1

*拓展:
数据结构是指数据在计算机内存中的存储方式。

1.2、序列的分类

  • 可变序列
    顾名思义,就是序列中的元素是可以改变的,元素改变后,序列对象不变
    如:列表(list)、字典(dict)

  • 不可变序列
    相对的,不可变序列则表示序列中的元素不能改变,否则,序列对象将发生改变。
    意思就是说:如果不可变序列中的元素不可变动,除非是改变序列对象
    如:字符串(str)、元组(tuple)

2、列表

2.1、概念

  • 列表是Python中的一个对象
  • 特点
    • 列表中可以保存多个有序的数据
    • 列表中可以存储对象
    • 列表中的可以是多个不同类型的数据
    • 列表是以一对方括号( [] )包裹多个数据的表现形式
    • 多个数据之间使用逗号( , )隔开

2.2、列表的使用

2.2.1、 列表的创建

# 创建一个以[]包裹数据形式的对象,
# 方括号中没有值,则表示是个空的列表
lst = []

2.2.2、 访问列表

列表既然是序列的一个类型,那么自然是要遵循序列的规则,
想要访问列表,可以通过列表的索引来进行访问

# 创建一个含有多个元素的列表
lst = ['Jack', 'Rose', 'Carleton', 'Molly', 'Ruth', 'Brock', 'Captain']

# 我们可以通过索引来访问元素
item = lst[0]
print(item)  # Jack
item = lst[1]
print(item)  # Rose

*以上:可以发现,我们可以通过下标= n - 1 来访问第n个元素

当然:索引的最大值不能超出列表最大个数-1,因为在这个列表中不存在那样的索引

2.2.3、 负数索引

Python比较有趣的一个就是,索引可以为负数。一起来看看

lst = ['Jack', 'Rose', 'Carleton', 'Molly', 'Ruth', 'Brock', 'Captain']

print(lst[-1])  # Captain
print(lst[-2])  # Brock
print(lst[-5])  # Carleton
print(lst[-7])  # Jack
# print(lst[-8])  # print(lst[-8]) # IndexError: list index out of range

能发现,负数索引好像是从最后开始数的
也就是-1,是倒数第一个,-2是倒数第二个…
*注意:负数索引也是不能超出列表长度的。因为不存在。

3、切片

*思考:

不知有没有人考虑过这个问题。
以上我们所将的,都是通过单个的索引来获取单个的元素。
我们有没有方法能够一次性获取列表中的多个值呢?

那就是切片

3.1、概念

切片是什么意思呢?
切片是指从现有列表中切割出一个子列表,可以包含多个数据项

语法:

列表名字[起始索引:结束索引:步长]

解释:

在指定的列表中,从指定起始索引开始,每指定步长个元素,把他提取出来,,直到到达指定结束索引前一个元素结束。然后把所有找到的元素放到一个新的列表中,返回


lst = ['Jack', 'Rose', 'Carleton', 'Molly', 'Ruth', 'Brock', 'Captain']

# 从索引1开始(Rose),到索引5结束(注意:不包括索引5--Brock,),步长为2(每两个元素取一个)
new_lst = lst[1:5:2]
print(new_lst)  # ['Rose', 'Molly']

# 原列表不变
print(lst)  # ['Jack', 'Rose', 'Carleton', 'Molly', 'Ruth', 'Brock', 'Captain']

3.2、特点

  • 通过切片获取元素时,包括起始索引的数据,但不包括结束索引的数据
  • 通过切片获取的元素,会组成一个新的列表返回,不会影响原列表
  • 起始索引、结束索引、步长可以不写,默认就是从开头寻找,到结束,步长为1
  • 步长不能为0,这样就是每隔0个元素找一个元素,无法执行这样的要求
  • 步长可以为负数,就像索引可以为负数一样

*以上:
特点总结的代码演示放在一起了

切片取值:

lst = ['Jack', 'Rose', 'Carleton', 'Molly', 'Ruth', 'Brock', 'Captain']

# 从索引1开始(Rose),到索引5结束(注意:不包括索引5--Brock,),步长为2(每两个元素取一个)
new_lst = lst[1:5:2]
print(new_lst)  # ['Rose', 'Molly']

# 原列表不变
print(lst)  # ['Jack', 'Rose', 'Carleton', 'Molly', 'Ruth', 'Brock', 'Captain']

切片参数的默认值

# 为了不占文本内容,后面就直接打印
# 如果我的起始索引、结束索引、和步长都不写,那就用默认值
# 会发现,默认值不写,和  0:列表长度:1  拿到的结果是一样的
# 但是不要混淆:这里说的是开头,和到结束。
print(lst[::])  # ['Jack', 'Rose', 'Carleton', 'Molly', 'Ruth', 'Brock', 'Captain&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值