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])
该题为博主原创,有错误欢迎指正

浙公网安备 33010602011771号