5.6 切片和嵌套
5.6.1 切片
对于字符串,列表和元组等序列类数据可以使用切片这个方法,快速的获取其中的一部分元素。
切片的格式为:[起始位置:结束位置:步长]。
特别注意,步长的正负取值,对于起始和结束位置的定义。
下面以字符串为例:5.11-切片.py
# 切片:将字符串取出其中的一部分
mystr = 'Hello World zhangsan!'
print('012345678901234567890')
print(mystr)
# 使用循环取一部分,取下标为5-10
print('使用循环方式:')
i = 5
while i < 10:
print(mystr[i], end='')
i += 1
# 使用切片方式
# 格式:[起始位置:结束位置:步长]
# 作用:从起始位置开始到结束位置的前一个元素,间隔步长的这些元素被取出
# 起始位置,结束位置都是下标
# 切片的两个位置是前闭后开:[起始位置, 结束位置)
print('\n使用切片方式:')
print(mystr[5:10])
# 省略结束位置,将取到字符串结束为止
print(mystr[2:])
# 省略起始位置,从字符串开头开始
print(mystr[:10])
# 下标为负,代表方向是从字符串结尾向开头去索引
print(mystr[-2])
print(mystr[2:-2])
# 步长代表从起始位置间隔若干个位置,取元素
# 起始位置元素必然取出来的
# 步长到达位置的元素被取出,如果超出结束位置的话,结束
print(mystr[2:10:2])
print(mystr[2:4:5])
# 步长为负,代表方向从字符串结尾走向字符串开头
print(mystr[::-2])
print(mystr[2:10:-2])
print(mystr[10:2:-2])
结果为:
012345678901234567890
Hello World zhangsan!
使用循环方式:
Worl
使用切片方式:
Worl
llo World zhangsan!
Hello Worl
n
llo World zhangsa
loWr
l
!agazdrWolH
drWo
5.6.2 嵌套
列表,元组和字典可以相互嵌套,例如:
>>> var = [(123, 456), {'name': 'zhangsan'}]
>>> var[0]
(123, 456)
>>> var[1]['name']
'zhangsan'
这时访问元素时,要注意使用的下标以及得出的结果。
如果要访问最基层的元素,就要使用多个下标组合。