本帖最后由 shyoldboy 于 2021-7-27 07:08 编辑
切片操作对象:切片主要对列表,元组,字符串进行操作
所以我们需要了解列表,元组,字符串的数据结构,在此,
仅对列表进行描述下面是正向索引下标(从0开始)
正向索引存储结构
反向索引下标从-length开始,其中length位数组长度
方向索引
以下例题都依赖上面两个索引图
引入第一个问题
[Python] 纯文本查看 复制代码 # 切片的练习
L = ['red', 'green', 'blue', 'yellow', 'while','black']
frontal = L[:3] # 正向取
# a = L[-5:-2]#反向取 不灵活,添加数据就会出问题
L.append('ceshi') # 给数组添加数据
length = len(L)
reverse = L[-length:-length + 3]#反向取 灵活取
[Python] 纯文本查看 复制代码
frontal = L[2::-1] #正向取 从index为2的地方取,步长为-1 (即就是往前取)
# a = L[-4::-1] # 反向取 不灵活只针对于本题,可以用本方法辅助理解
# 从-4 步长为-1 第一次读取-3 直到读取到0位
L.append('gray')
length = len(L)
reverse = L[-length + 2::-1]
[Python] 纯文本查看 复制代码
length = len(L) # 6
frontal = L[length - 3:] # 正向取
reverse =L[-3:] # 反向取
[Python] 纯文本查看 复制代码
L.append('grey')
# a = L[length - 3::][::-1] # 方法随好但是引入一个列表
frontal = L[:2:-1] #正向取
reverse = L[:-length + 2:-1] #反向取
[Python] 纯文本查看 复制代码
sum = list(range(0,30))
i = sum[10:21] # 正向取
length = len(sum) # 6
j = sum[-length + 10: -length + 21] # 反向取
[Python] 纯文本查看 复制代码
'''3.1、取10-20位并反转'''
i = sum[20:9:-1] # 正向取
j = sum[-length + 20:-length + 9:-1] # 反向取
print(i)
print(j)
更新
问题:去掉字符串的前后空格(使用切片)?
[Python] 纯文本查看 复制代码
def trim(str1):
if str1 == '' or str1 == None: # 此处需细化
return str1
else:
while True: # 一直循环判断前后字符串是否为空
if str1[0] == ' ':
str1 = str1[1:] # 如果第一位为空格就直接截取
elif str1[-1] == ' ':
str1 = str1[:-1] # 如果最后一位为空格就直接截取
else:
return str1 #不是上述情况直接返回
if __name__ == '__main__':
str1 = " zhang ying tao " # str = '' str = 12 str =(1,2,3)
print(list(trim(str1))) # 加个list 方便查看是否有空格字符
更新切片去左右空格代码,还有练习切片的问题吗?评论区走一走,切片还需练习,改日更新。。。
还在学习中。。。未完待续。。。 |