1.正向范围取值
关键点
- 首位下标是 0
- 第一个数字是起始下标,第二个数字是结束下标(但最终结果不包含它)
例一:
# 正向范围取值 - 字符串
strs ="https://www.baidu.com/"
# 从第 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])
运行结果
h
https://ww
://ww
://www.baidu.com/
https://www.baidu.com/
https://ww
例二:
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:725638078
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# 正向范围取值 - 数组
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]
[]
[]
2.反向范围取值
关键点
- 因为是反向,所以倒数的下标从 -1 算起
- 第一个数字是起始下标,第二个数字是结束下标(但最终结果不包含它)
- 第一个数字是负数情况下,第二个数字最大是 -1,如果写成 0 会返回空值
例:
# 反向范围取值 - 字符串
strs = "https://www.baidu.com/"
# 取最后 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])
运行结果
baidu.com/
baidu
[5, 6, 7, 8, 9, 10]
[6, 7, 8, 9]
[]
[2, 3, 4, 5]
3.[:] 复制对象
例:
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:725638078
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
lists1 = [1, 2, 3, 4, 5]
lists2 = lists1
lists1.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 = lists1
lists1[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 = strs1
strs1 = "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 2560550627656
abc abcd 2560547930776 2560548937376
abc abcd 2560547930776 2560548937376
[:] 等同于浅拷贝,对可变对象是生效的
4.[::] 步进
例:
# [::]
strs = "https://www.baidu.com/"
# 取最后 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])
运行结果
biucm
h:
https://www.baidu.com/
/moc.udiab.www//:sptth
[1, 4, 7, 10]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
结尾给大家推荐一个非常好的学习教程,希望对你学习Python有帮助!
Python基础入门教程推荐:更多Python视频教程-关注B站:Python学习者
https://www.bilibili.com/video/BV1LL4y1h7ny?share_source=copy_web
Python爬虫案例教程推荐:更多Python视频教程-关注B站:Python学习者
https://www.bilibili.com/video/BV1QZ4y1N7YA?share_source=copy_web