python切片操作
【摘要】 一.基本介绍 1.基本介绍在 Python 中,切片是一种非常强大的特性,它允许你从序列(如列表、元组、字符串等)中提取子序列。切片的基本语法如下:sequence[start:stop:step]start 是切片开始的位置索引(包含该位置)。stop 是切片结束的位置索引(不包含该位置)。step 是步长,表示选择元素的间隔,默认为 1。 2.倒序输出my_list = [0, 1, ...
一.基本介绍
1.基本介绍
在 Python 中,切片是一种非常强大的特性,它允许你从序列(如列表、元组、字符串等)中提取子序列。切片的基本语法如下:
sequence[start:stop:step]
start
是切片开始的位置索引(包含该位置)。stop
是切片结束的位置索引(不包含该位置)。step
是步长,表示选择元素的间隔,默认为 1。
2.倒序输出
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
sub_list = my_list[5::-1] # 从索引5到索引0(不包括0),步长为-1
print(sub_list)
[5, 4, 3, 2, 1, 0]
3.不包含 0
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
sub_list = my_list[5:0:-1] # 从索引5到索引0(不包括0),步长为-1
print(sub_list)
[5, 4, 3, 2, 1]
4.正序输出
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
sub_list = my_list[:5] # 从索引5到索引0(不包括0),步长为-1
print(sub_list)
[0, 1, 2, 3, 4]
5.减一位输出
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
sub_list = my_list[5-1::-1] # 从索引5到索引0(不包括0),步长为-1
print(sub_list)
[4, 3, 2, 1, 0]
6.reversed 函数
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
sub_list = reversed(my_list[:5]) # 从索引5到索引0(不包括0),步长为-1
print(sub_list)
print(type(sub_list))
for sub in sub_list:
print(sub)
<list_reverseiterator object at 0x108485d50>
<class ‘list_reverseiterator’>
4
3
2
1
0
二.例子演示
下面是一些切片的例子:
-
获取序列的一部分:
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] sub_list = my_list[2:5] # 结果是 [2, 3, 4]
-
从序列的开始或结束获取:
sub_list = my_list[:5] # 从开始到索引5(不包括5),结果是 [0, 1, 2, 3, 4] sub_list = my_list[5:] # 从索引5到结束,结果是 [5, 6, 7, 8, 9]
-
反向切片:
sub_list = my_list[::-1] # 反向整个列表,结果是 [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] sub_list = my_list[-3:-1] # 从倒数第三个元素到倒数第二个元素,结果是 [7, 8]
-
步长切片:
sub_list = my_list[::2] # 从开始到结束,步长为2,结果是 [0, 2, 4, 6, 8] sub_list = my_list[1::2] # 从索引1开始,步长为2,结果是 [1, 3, 5, 7, 9]
三.实现
1.从索引 5 到索引 0
在 Python 中,如果你想要通过切片从索引 5 到索引 0(不包括索引 0),你可以使用负数索引和步长。负数索引表示从序列的末尾开始计数,其中 -1
是最后一个元素的索引。步长为负数表示反向迭代。
以下是如何实现从索引 5 到索引 0 的切片:
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
sub_list = my_list[5:0:-1] # 从索引5到索引0(不包括0),步长为-1
在这个例子中,sub_list
的结果将是:
[5, 4, 3, 2, 1]
这是因为切片从索引 5 开始,到索引 0 结束(不包括索引 0),并且每次迭代向前(向列表的开始方向)移动一个位置。注意,索引 0 是切片的结束索引,但由于切片不包括结束索引,所以索引 0 处的元素不会被包含在结果中。
2.反向遍历
if clear_index > 0:
for message in reversed(sorted_messages[:clear_index]):
return None
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)