""" 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 # # # 2) 取从最后一个元素到末尾的切片(返回列表) # last_slice = skills[-1:] # print("skills[-1:] ->", last_slice, type(last_slice)) # # 输出: skills[-1:] -> ['javascript'] # # # 3) 当 start 索引在 stop 索引之后,且 step 为正时,结果为空列表 # empty_slice = skills[-1:0] # print("skills[-1:0] ->", empty_slice, type(empty_slice)) # # 输出: skills[-1:0] -> [] # # # 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 是可变的,元素是可以重复的,使用 + 号可以拼接两个列表,返回一个新的列表