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