Python3 切片

关于切片

1.可进行切片的操作对象

有序序列

常见的有序序列包括:列表,字符串,元组

(1)列表

ls = [1,2,3,4,5]
print(ls[1:5])

输出结果

[2, 3, 4, 5]

Process finished with exit code 0

(2)字符串

str1 = '12345'
print(str1[1:5])

输出结果

2345

Process finished with exit code 0

(3)元组

tup = 1,2,3,4,5
print(tup[1:5])

输出结果

(2, 3, 4, 5)

Process finished with exit code 0

(4)其他不可执行切片的对象(以集合为例)

s = set('12345')
print(s[1:5])

输出结果

TypeError: 'set' object is not subscriptable

Process finished with exit code 1

 

2.切片的格式(以下以List(列表)为例)

描述

切片是对列表进行截取的操作。

语法

以下是切片的语法:

string[start:stop:step]

参数

start -- 列表需要开始切片位置的下标,若为缺省值,那么默认从列表下标为0处开始切片;

stop -- 切片所需要切到的最终位置的下标+1,若为缺省值,那么默认截取至列表的最后一个元素(包括该元素);

step -- 表示切片截取时的步幅,若为缺省值,那么默认为1。

返回值

截取后的列表序列

3.常见的切片形式(以下以字符串或列表为例)

列表的复制

ls1 = [1,2]
ls2 = ls1[:]
ls1[0] = -1
print(ls1,ls2)

输出结果

[-1, 2] [1, 2]

Process finished with exit code 0

步幅不为1的切片

str1 = "gcosofdg dlnudckk"
print(str1[0::2])

输出结果

good luck

Process finished with exit code 0

默认从初始位置开始截取

str1 = "gcosofdg dlnudckkfyhhf"
print(str1[:17:2])

输出结果

good luck

Process finished with exit code 0

默认截取至列表最后一个元素

list1 = [0,84,1,2,1,3,8]
print(list1[2:])

输出结果

[1, 2, 1, 3, 8]

Process finished with exit code 0

反向截取

list1 = [0,84,8,3,1,2,1]
print(list1[6:1:-1])

输出结果

[1, 2, 1, 3, 8]

Process finished with exit code 0

个人觉得这个最难理解,自己多试几个程序熟悉熟悉

列表的翻转

list1 = ["POWER","PROPERTY","INTELLECTUAL"]
print(list1[::-1])

输出结果

['INTELLECTUAL', 'PROPERTY', 'POWER']

Process finished with exit code 0

 

练习

描述

给定一串字符

str1 = "《民法典》123条:民事主体依法享有知识产权。"

按照要求输出。

要求

首先输出字符串的长度

运用index()

其他按照输出格式输出

输入格式

本题无输入

输出格式

《民法典》
《民法典》123条:民事主体依法享有知识产权。
知识产权
权产识知
。权产识知有享法依体主事民:条321》典法民《
《典2:主法知权

参考代码

str1 = "《民法典》123条:民事主体依法享有知识产权。"
l1 = str1.index('》')
print(str1[:l1+1])
print(str1[:])
l2 = str1.index("知")
l3 = str1.index("权")
print(str1[l2:l3+1])
print(str1[l3:l2-1:-1])
print(str1[::-1])
print(str1[::3])

该题为博主原创,有错误欢迎指正

posted @ 2021-06-26 17:45  柏木カケル  阅读(347)  评论(0)    收藏  举报