| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- """
- example01 - 列表切片示例
- auther: tanlie
- date: 2026/8/22
- 本文件演示关于负索引和切片(slice)的常见用法,
- 并在每个示例旁给出注释和预期输出。
- """
- # 练习用的列表
- skills = ["python", "java", "c++", "c#", "javascript"]
- # print("skills =", skills)
- # # skills = ['python', 'java', 'c++', 'c#', 'javascript']
- #
- # # 1) 取最后一个元素(元素本身,类型是 str)
- # last_elem = skills[-1]
- # print("skills[-1] ->", last_elem, type(last_elem))
- # # 输出: skills[-1] -> javascript <class 'str'>
- #
- # # 2) 取从最后一个元素到末尾的切片(返回列表)
- # last_slice = skills[-1:]
- # print("skills[-1:] ->", last_slice, type(last_slice))
- # # 输出: skills[-1:] -> ['javascript'] <class 'list'>
- #
- # # 3) 当 start 索引在 stop 索引之后,且 step 为正时,结果为空列表
- # empty_slice = skills[-1:0]
- # print("skills[-1:0] ->", empty_slice, type(empty_slice))
- # # 输出: skills[-1:0] -> [] <class 'list'>
- #
- # # 4) 取最后两个元素
- # last_two = skills[-2:]
- # print("skills[-2:] ->", last_two)
- # # 输出: skills[-2:] -> ['c#', 'javascript']
- #
- # # 5) 取中间一段:从 -3(c++)到 -1(不含) => 包含索引 2 和 3
- # mid_slice = skills[-3:-1]
- # print("skills[-3:-1] ->", mid_slice)
- # # 输出: skills[-3:-1] -> ['c++', 'c#']
- #
- # # 6) 使用负步长,从最后向前切到索引 0(不含 0)
- # reverse_part = skills[-1:0:-1]
- # print("skills[-1:0:-1] ->", reverse_part)
- # # 输出: skills[-1:0:-1] -> ['javascript', 'c#', 'c++', 'java']
- #
- # # 7) 完整反转列表(等价于 list(reversed(skills)))
- # reversed_all = skills[::-1]
- # print("skills[::-1] ->", reversed_all)
- # # 输出: skills[::-1] -> ['javascript', 'c#', 'c++', 'java', 'python']
- #
- # # 额外提示:如果你只想以列表形式获取最后一个元素,使用
- # # skills[-1:]
- # # 如果想获取元素本身(不是列表),使用
- # # skills[-1]
- skills2 = ["python", "java", "c++", "c#", "javascript"]
- print(skills + skills2) # list 是可变的,元素是可以重复的,使用 + 号可以拼接两个列表,返回一个新的列表
|