python学习站 /学习python第一周
阅读主题
正文字体
字体大小

19.列表的查操作

本节4960字2025-03-29 12:54:40
# 1. 查单个  -  一次获取列表中的一个元素
"""
1)语法:
列表[索引]

2)说明
列表      -       可以是保存列表的变量也可以是一个具体的列表值
[]       -       固定写法
索引      -       又叫下标,列表中元素的位置信息
                 python中列表一旦确定,列表中元素的索引值就确定了。
                 python中有序的容器的索引值有两种:
                 元素从前往后对应的索引值从0开始不断加1
                 元素从后往前对应的索引值从-1开始不断减1                     
"""
movies = ['肖生克的救赎', '霸王别姬', '阿甘正传', '沉默的羔羊', '蝴蝶效应', '恐怖游轮']

print(movies[-5])
print(['肖生克的救赎', '霸王别姬', '阿甘正传', '沉默的羔羊', '蝴蝶效应', '恐怖游轮'][-5])

print(movies[-1])

# print(movies[6])      # 报错!索引不能越界
print('------------------------------------华--丽--的--分--割--线------------------------------------')
# 2. 切片    -   同时获取列表中多个元素(切片的结果一定是列表)
"""
1)完整的切片语法
列表[开始下标:结束下标:步长]

a.如何查看切片结果
第一步:看结果是否为空列表(看开始下标对应的位置到结束下标对应的位置的方向和步长对应的方向是否一致, 不一致结果为[])
       步长对应的方向:步长为正表示从前往后取,步长为负表示从后往前取
第二步:确定有效范围(开始下标对应的元素能取到,结束下标对应的元素取不到)
第三步:通过步长确定的方式在有效范围内获取元素
       如果步长绝对值为1就一个一个地取;绝对值为2就取一个跳过一个再取一个;绝对值为3就是取一个跳过2个再取1个

b.如何写切片代码
开始下标  - 需要获取的第一个元素在列表中的索引值
结束下标   -  写需要获取的最后一个元素的后一个元素或者前一个元素的索引值(看方向)
步长  -   正负看方向;绝对值看获取方式

"""
movies = ['肖生克的救赎', '霸王别姬', '阿甘正传', '沉默的羔羊', '蝴蝶效应', '恐怖游轮', '触不可及', '哪吒2', '加勒比海盗', '变形金刚']
print(movies[1:6:2])        # ['霸王别姬', '沉默的羔羊', '恐怖游轮']
print(movies[0:-2:-3])          # []
print(movies[-1:2:-3])      # ['变形金刚', '触不可及', '沉默的羔羊']
print(movies[0:-1:1])       # ['肖生克的救赎', '霸王别姬', '阿甘正传', '沉默的羔羊', '蝴蝶效应', '恐怖游轮', '触不可及', '哪吒2', '加勒比海盗']
print(movies[-7:-2:-2])     # []
print(movies[1:-2:4])       # ['霸王别姬', '恐怖游轮']
print(movies[7:0:3])        # []
print(movies[-2:3:-2])      # ['加勒比海盗', '触不可及', '蝴蝶效应']
print('------------------------------------华--丽--的--分--割--线------------------------------------')
# 练习:写出下面切片结果对应的切片代码
# ['肖生克的救赎', '霸王别姬', '阿甘正传', '沉默的羔羊', '蝴蝶效应']
print(movies[0:5:1])
# ['沉默的羔羊', '蝴蝶效应', '恐怖游轮', '触不可及', '哪吒2']
print(movies[3:-2:1])
# ['触不可及', '恐怖游轮', '蝴蝶效应']
print(movies[-4:3:-1])
# ['肖生克的救赎', '恐怖游轮']
print(movies[0:-4:5])
# ['变形金刚', '触不可及', '沉默的羔羊']
print(movies[-1:2:-3])
print('------------------------------------华--丽--的--分--割--线------------------------------------')
"""
2)切片的省略写法
列表[开始下标:结束下标:步长]

a.省略步长 - 相当于步长为1 
列表[开始下标:结束下标]

b.省略开始下标    -   从头开始取(头可能是第一个元素也可能是最后一个元素,看步长对应的方向)
列表[:结束下标:步长]
列表[:结束下标]

c.省略结束下标        -   从开始下标对应的位置开始取,取完为止
列表[开始下标::步长]
列表[开始下标:]
列表[::步长]
"""
movies = ['肖生克的救赎', '霸王别姬', '阿甘正传', '沉默的羔羊', '蝴蝶效应', '恐怖游轮', '触不可及', '哪吒2', '加勒比海盗', '变形金刚']
print(movies[5:0])      # []
print(movies[4:-2])     # ['蝴蝶效应', '恐怖游轮', '触不可及', '哪吒2']
print(movies[:-3])      #  ['肖生克的救赎', '霸王别姬', '阿甘正传', '沉默的羔羊', '蝴蝶效应', '恐怖游轮', '触不可及']
print(movies[:4:-1])    # ['变形金刚', '加勒比海盗', '哪吒2', '触不可及', '恐怖游轮']
print(movies[:5:2])     #  ['肖生克的救赎', '阿甘正传', '蝴蝶效应']
print(movies[:2:-3])    # ['变形金刚', '触不可及', '沉默的羔羊']
# ['恐怖游轮', '触不可及', '哪吒2', '加勒比海盗', '变形金刚']
print(movies[5:])
print(movies[::2])
print(movies[:])        # ['肖生克的救赎', '霸王别姬', '阿甘正传', '沉默的羔羊', '蝴蝶效应', '恐怖游轮', '触不可及', '哪吒2', '加勒比海盗', '变形金刚']

print('------------------------------------华--丽--的--分--割--线------------------------------------')
# 3. 遍历     -   一个一个地获取列表中所有的元素
"""
方法1:
for 变量 in 列表:
    循环体(变量直接获取到列表中的元素)
    
方法2:通过遍历得到每个元素的索引来获取每个元素
for 变量 in range(len(列表)):
    循环体(变量依次获取到的时候每个元素的索引)
"""
movies = ['肖生克的救赎', '霸王别姬', '阿甘正传', '沉默的羔羊', '蝴蝶效应', '恐怖游轮', '触不可及', '哪吒2', '加勒比海盗', '变形金刚']
for x in movies:
    print(x)

print('------------------------------------华--丽--的--分--割--线------------------------------------')
# 0 1 2 3 4 5 ... 9
# len(列表)  - 获取列表长度(列表中元素的个数)
for x in range(len(movies)):
    print(x, movies[x])

print('------------------------------------华--丽--的--分--割--线------------------------------------')
# -1 -2 -3 ... -10
for x in range(-1, -len(movies)-1, -1):
    print(x, movies[x])

print('------------------------------------华--丽--的--分--割--线------------------------------------')
# 9 8 7 6 ... 3 2 1
for x in range(len(movies)-1, 0, -1):
    print(x, movies[x])


网友评论

相关作品