day6-列表

1. 列表基础

'''
1) 列表是容器型数据类型(序列);将[]作为容器的标志,里面多个数据用逗号隔开:[数据1, 数据2, 数据3, ...]
2) 列表是可变的(可变指的是列表中元素的个数和元素的值可变 - 列表支持增删改)
   列表是有序的(元素有顺序对应的位置信息;元素的顺序影响结果 - 列表支持索引操作)
3) 列表对元素的要求:没有要求,任何类型的数据都可以作为列表的元素

注:元素 - 容器中每一个独立的数据,就是这个容器的元素
'''
  1. 空列表
'''
1) 列表是容器型数据类型(序列);将[]作为容器的标志,里面多个数据用逗号隔开:[数据1, 数据2, 数据3, ...]
2) 列表是可变的(可变指的是列表中元素的个数和元素的值可变 - 列表支持增删改)
   列表是有序的(元素有顺序对应的位置信息;元素的顺序影响结果 - 列表支持索引操作)
3) 列表对元素的要求:没有要求,任何类型的数据都可以作为列表的元素

注:元素 - 容器中每一个独立的数据,就是这个容器的元素
'''
list1 = []
  1. 列表是有序的
print([10, 20, 30] == [30, 10, 20])     # False
print({10, 20, 30} == {30, 20, 10})     # True
  1. 列表元素可以是任何类型的数据

    a. 一个列表中的元素可以是多个相同类型的数据

    b. 一个列表中的元素可以是多个不同类型的数据

    c. 列表中的元素也可以是列表

list2 = [10, 20, 30]
names = ['Bob', 'Tom', 'Pyter']

list3 = [10, 1.23, 'Timi', True, None]

list4 = [10, 20, [30, 40]]

2. 查

  1. 查单个 - 获取一个元素
'''
1) 语法:
列表[索引]

2) 说明
列表 - 需要获取元素的列表对象(可以是保存一个列表的变量,也可以是据体的列数据)
[] - 固定写法
索引 - 又叫下标;指的是元素在列表中的位置
      列表一旦确定,列表中的每个元素对应的索引就确定:
      a. 元素从前往后索引从0开始不断增加
      b. 元素除从后往前从-1开始不断减少
'''
nums = [10, 20, 30, 40]
print(nums[1])
print([10, 20, 30, 40][1])

print(nums[-1])
print(nums[3])

# print(nums[4])    # 报错 索引不能越界
# print(nums[-6])   # 报错 索引不能越界
  1. 切片 - 同时获取多个元素(列表切片的结果是列表)
'''
1) 完整语法:
列表[开始下标:结束下标:步长]

a. 说明
列表 - 需要获取元素列表
[] - 固定写法
开始下标、结束下标、步长 - 必须是整数
开始下标 - 决定从哪里开始取
结束下标 - 决定取到哪里结束
步长 - 决定取的时候怎么取(是一个一个的按顺序取,还是跳着取;是从前往后取(步长为正)还是从后往前取(步长为负))

2) 使用切片
a. 确定切片结果
第一步:先确定结果是否为空,看开始下标对应的位置到结束下标对应的位置的方向和步长的方向是否一致
       一致结果不为空,不一致结果一定为空
第二步:如果结果不为空,再确定切片的有效范围:开始下标对应的元素能取到,结束下标对应的元素取不到
第三步:在有效范围内,按照步长的方向和绝对值获取元素
       方向:步长为正,从开始下标到结束下标从前往后取;步长为负就从后往前取
       绝对值:绝对值为1,就1个1个的取;绝对值为2,取1个跳1个再取1个;绝对值为3,取1个跳2个再取一个;...
b. 怎么写切片代码获取指定元素
确定开始下标:需要的结果中第一个数据在列表的下标
确定结束下标:结束下标是结果中最后一项的后一个或者前一个数据的下标(看方向)
确定步长:正负看趋势(从后往前取还是从前往后取);再看绝对值(看取的时候是挨着取还是跳着取)

3) 切片省略的写法
a. 省略步长 - 相当于步长为1
列表[开始下标:结束下标]

b. 省略开始下标 - 获取元素从头开始取(步长为正,从第一个元素开始;步长为负,从最后一个元素开始)
列表[:结束下标:步长]

c. 省略结束下标 - 获取元素的时候从开始下标开始,取完为止
列表[开始下标::步长]
'''
movies = ['肖申克的救赎', '霸王别姬', '阿甘正传', '蜘蛛侠', '蝙蝠侠', '雷神', '蚁人', '钢铁侠', '复仇者联盟']
print(movies[1:3:1])        # ['霸王别姬', '阿甘正传']
print(movies[0: -2: 2])     # ['肖申克的救赎', '阿甘正传', '蝙蝠侠', '蚁人']
print(movies[5:0:2])        # []
print(movies[3:-1:-1])      # []
print(movies[-2:2:-2])      # ['钢铁侠', '雷神', '蜘蛛侠']
print(movies[6:2:-3])       # ['蚁人', '蜘蛛侠']
print(movies[1:3:3])        # ['霸王别姬']

print(movies[1:-1:1])       # ['霸王别姬', '阿甘正传', '蜘蛛侠', '蝙蝠侠', '雷神', '蚁人', '钢铁侠']
print(movies[-1:1:-2])      # ['复仇者联盟', '蚁人', '蝙蝠侠', '阿甘正传']
print(movies[-2:5:2])       # []
print(movies[0:-2:4])       # ['肖申克的救赎', '蝙蝠侠']
print(movies[5:-1:2])       # ['雷神', '钢铁侠']
print(movies[6:-6:-1])      # ['蚁人', '雷神', '蝙蝠侠']

print(movies[0:-2:3])
print(movies[-1:-5:-1])
print(movies[3:0:-2])
print(movies[-2:2:-2])
print(movies[1:-3:4])


print(movies[1:4])
print(movies[-1:1])         # []

print(movies[:-2:2])
print(movies[:2:-2])
print(movies[:4])

print(movies[::2])
  1. 遍历 - 一个一个获取列表中的所有的元素
'''
方法1 - 直接获取元素
for 变量 in 列表:
    循环体(变量依次获取到的就是列表中的每个元素)

方法2 - 通过获取所有元素的下标来获取元素
for 变量 in range(列表长度):
    循环体(列表[变量])
    
方法3
for 变量1, 变量2 in enumerate(列表):
    循环体(变量1依次获取的是每个元素的下标;变量2依次获取的是每个元素)
'''
scores = [90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80]

# 方法1
for i in scores:
    print(i)

# 方法2
for i in range(len(scores)):
    print(scores[i])

# 方法3
for i, j in enumerate(scores):
    print(i, j)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值