example01.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. """
  2. example01 - 列表切片示例
  3. auther: tanlie
  4. date: 2026/8/22
  5. 本文件演示关于负索引和切片(slice)的常见用法,
  6. 并在每个示例旁给出注释和预期输出。
  7. """
  8. # 练习用的列表
  9. skills = ["python", "java", "c++", "c#", "javascript"]
  10. # print("skills =", skills)
  11. # # skills = ['python', 'java', 'c++', 'c#', 'javascript']
  12. #
  13. # # 1) 取最后一个元素(元素本身,类型是 str)
  14. # last_elem = skills[-1]
  15. # print("skills[-1] ->", last_elem, type(last_elem))
  16. # # 输出: skills[-1] -> javascript <class 'str'>
  17. #
  18. # # 2) 取从最后一个元素到末尾的切片(返回列表)
  19. # last_slice = skills[-1:]
  20. # print("skills[-1:] ->", last_slice, type(last_slice))
  21. # # 输出: skills[-1:] -> ['javascript'] <class 'list'>
  22. #
  23. # # 3) 当 start 索引在 stop 索引之后,且 step 为正时,结果为空列表
  24. # empty_slice = skills[-1:0]
  25. # print("skills[-1:0] ->", empty_slice, type(empty_slice))
  26. # # 输出: skills[-1:0] -> [] <class 'list'>
  27. #
  28. # # 4) 取最后两个元素
  29. # last_two = skills[-2:]
  30. # print("skills[-2:] ->", last_two)
  31. # # 输出: skills[-2:] -> ['c#', 'javascript']
  32. #
  33. # # 5) 取中间一段:从 -3(c++)到 -1(不含) => 包含索引 2 和 3
  34. # mid_slice = skills[-3:-1]
  35. # print("skills[-3:-1] ->", mid_slice)
  36. # # 输出: skills[-3:-1] -> ['c++', 'c#']
  37. #
  38. # # 6) 使用负步长,从最后向前切到索引 0(不含 0)
  39. # reverse_part = skills[-1:0:-1]
  40. # print("skills[-1:0:-1] ->", reverse_part)
  41. # # 输出: skills[-1:0:-1] -> ['javascript', 'c#', 'c++', 'java']
  42. #
  43. # # 7) 完整反转列表(等价于 list(reversed(skills)))
  44. # reversed_all = skills[::-1]
  45. # print("skills[::-1] ->", reversed_all)
  46. # # 输出: skills[::-1] -> ['javascript', 'c#', 'c++', 'java', 'python']
  47. #
  48. # # 额外提示:如果你只想以列表形式获取最后一个元素,使用
  49. # # skills[-1:]
  50. # # 如果想获取元素本身(不是列表),使用
  51. # # skills[-1]
  52. skills2 = ["python", "java", "c++", "c#", "javascript"]
  53. print(skills + skills2) # list 是可变的,元素是可以重复的,使用 + 号可以拼接两个列表,返回一个新的列表