面 tx 被问到 python 的高级特性相关,这里做个补充学习吧
正向范围取值关键点首位下标是 0第一个数字是起始下标,第二个数字是结束下标(但最终结果不包含它)
代码块一
# 正向范围取值 - 字符串strs ="https://www.cnblogs.com/poloyy"# 从第 0 个下标开始取值,到第 1 个下标结束,但不会取第 1 个下标的元素,最终取的是 0 下标的值print(strs[0:1])# 从第 0 个下标开始取值,到第 10 个下标结束,但不会取第 10 个下标的元素,最终取的是 1,2,3,4,5,6,7,8,9 下标的值print(strs[0:10])# 从第 5 个下标开始取值,到第 10 个下标结束,但不会取第 10 个下标的元素,最终取的是 5,6,7,8,9 下标的值print(strs[5:10])# 从第 5 个下标开始取值,到第 100 个下标结束,但因为字符串最长就 30 个字符,所以会取到最后一个结束就结束了print(strs[5:100])# 相同数字返回空print(strs[5:5])# 第二个数字比第一个数字小,返回空print(strs[5:4])# 从第 0 个下班开始取值,取后面所有元素print(strs[0:])# 取前面 10 个元素print(strs[:10])
运行结果
hhttps://ww://ww://www.cnblogs.com/poloyyhttps://www.cnblogs.com/poloyy
https://ww
代码块二
# 正向范围取值 - 数组Lists = [1, 2, 3, 4, 5, 6, 7]print(Lists[0:1])print(Lists[0:10])print(Lists[5:10])print(Lists[5:100])print(Lists[5:5])print(Lists[5:4])
运行结果
[1][1, 2, 3, 4, 5, 6, 7][6, 7][6, 7][][]
反向范围取值关键点因为是反向,所以倒数的下标从 -1 算起第一个数字是起始下标,第二个数字是结束下标(但最终结果不包含它)第一个数字是负数情况下,第二个数字最大是 -1,如果写成 0 会返回空值
代码块
# 反向范围取值 - 字符串strs = "https://www.cnblogs.com/poloyy"# 取最后 10 个元素print(strs[-10:])# 取最后 6-10 的元素, 不会取到倒数第五个元素print(strs[-10:-5])# 反向范围取值 - 列表Lists = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]# 取最后 6 个元素print(Lists[-6:])# 取最后 5 个元素, 但不会取到倒数第 1 个元素print(Lists[-5:-1])# 第二个值写0,返回空值print(Lists[-10:0])# 正数+复数组合print(Lists[1:-5])
运行结果
com/poloyycom/p[5, 6, 7, 8, 9, 10][6, 7, 8, 9][][2, 3, 4, 5]
[:] 复制对象代码块
# [:]Lists1 = [1, 2, 3, 4, 5]Lists2 = Lists1Lists1.append(6)print(Lists1, Lists2, ID(Lists1), ID(Lists2))Lists1 = [1, 2, 3, 4, 5]Lists2 = Lists1[:]Lists1.append(6)print(Lists1, Lists2, ID(Lists1), ID(Lists2))Lists1 = [1, 2, 3, 4, 5, [1, 2, 3]]Lists2 = Lists1Lists1[5].append(4)print(Lists1, Lists2, ID(Lists1), ID(Lists2))Lists1 = [1, 2, 3, 4, 5, [1, 2, 3]]Lists2 = Lists1[:]Lists1[5].append(4)print(Lists1, Lists2, ID(Lists1), ID(Lists2))strs1 = "abcd"strs2 = strs1strs1 = "abc"print(strs1, strs2, ID(strs1), ID(strs2))strs1 = "abcd"strs2 = strs1[:]strs1 = "abc"print(strs1, strs2, ID(strs1), ID(strs2))
运行结果
[1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6] 2560550555144 2560550555144[1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5] 2560550627784 2560548023880[1, 2, 3, 4, 5, [1, 2, 3, 4]] [1, 2, 3, 4, 5, [1, 2, 3, 4]] 2560550627400 2560550627400[1, 2, 3, 4, 5, [1, 2, 3, 4]] [1, 2, 3, 4, 5, [1, 2, 3, 4]] 2560550627784 2560550627656abc abcd 2560547930776 2560548937376abc abcd 2560547930776 2560548937376
知识点
[:] 等同于浅拷贝,对可变对象是生效的
[::] 步进代码块
# [::]strs = "https://www.cnblogs.com/poloyy"# 取最后 10 个元素,每 2 个取 1 个print(strs[-10::2])# 取第 0 到 10 的元素,每 5个 取 1 个print(strs[0:10:5])print(strs[::])# 倒序print(strs[::-1])Lists = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]# 取全部元素,每 3 个 取 1 个print(Lists[::3])# 倒序print(Lists[::-1])
运行结果
cmplyh:https://www.cnblogs.com/poloyyyyolop/moc.sgolbnc.www//:sptth[1, 4, 7, 10][10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
总结
以上是内存溢出为你收集整理的Python 高级特性(1)- 切片全部内容,希望文章能够帮你解决Python 高级特性(1)- 切片所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)