本文共 870 字,大约阅读时间需要 2 分钟。
在 Python 中,a[i:j]
的含义是将从索引 i
到 j-1
的元素复制一遍,生成一个新切片。切片的数据类型与被切片的对象完全一致。
示例:
>>> list1 = [1, 2, 3, 4, 5]>>> list1[1:4] # 输出 [2, 3, 4]>>> tuple1 = ('a', 'b', 'c', 'd', 'e')>>> tuple1[1:4] # 输出 ('b', 'c', 'd')>>> string1 = "abcde">>> string1[1:4] # 输出 'bcd'
切片操作中,i
和 j
的默认值非常实用:
i
未指定时,默认为 0
。j
未指定时,默认为 len(a)
,即切片到末尾。i
和 j
均未指定时,a[:]
切片相当于复制整个列表 a
。示例:
>>> list1 = [1, 2, 3, 4, 5]>>> list1[:3] # 等同于 list1[0:3],输出 [1, 2, 3]>>> list1[3:] # 等同于 list1[3:5],输出 [4, 5]>>> list1[:] # 输出完整副本 [1, 2, 3, 4, 5]
切片操作中,a[i:j:s]
的 s
表示步长,默认值为 1
,即每次只取一个元素。
关键点:
s < 0
时,i
和 j
的默认值会发生变化: i
未指定时,默认为 -1
。j
未指定时,默认为 -(len(a) + 1)
。a[::-1]
切片的含义是从最后一个元素开始,倒序切片到第一个元素。示例:
>>> list1 = [1, 2, 3, 4, 5]>>> list1[::-1] # 输出 [5, 4, 3, 2, 1]>>> list1[::-2] # 步长为 -2,输出 [5, 3, 1]
这些切片操作为 Python 列表、元组和字符串提供了强大的灵活性,能够高效处理数据切片和重组任务。
转载地址:http://guknz.baihongyu.com/