列表切片的语法
a[start:end] 从start开始到end-1结束;
a[start:] 从start开始直到末尾;
a[:end] 从头部开始直到end结束;
a[:] 复制整个列表;
从左到右时候的位置关系:
+---+---+---+---+---+---+
| P | y | t | h | o | n |
+---+---+---+---+---+---+
0 1 2 3 4 5 6
-6 -5 -4 -3 -2 -1
a[start:end:step] step 表示步长,正负号表示方向, step 默认为 +1 ,所以默认 start 和 end 是从头到尾,如果 step 为负数,则 start 表示尾,end 表示头。 start 和 end 是根据 step 来确认的。
In [2]:
a = ['Shanghai', 'Beijing', 'Hangzhou', 'Tokyo', 'Osaka']
print(a)
In [3]:
b = a[0:3]
# 省略start,表示从头开始
c = a[:3]
print(b)
print(c)
In [4]:
# 省略 end,从-1 到 end
b = a[-1:]
print(b)
b = a[-3:]
print(b)
In [ ]:
a = list(range(100))
print(a)
b = a[0:10]
print(b)
In [ ]:
b = a[-10:]
print(b)
In [ ]:
b = a[0:10:2]
print(b)
In [ ]:
# step 错误,不输出结果
b = a[0:10:-2]
print(b)
In [ ]:
b = a[10:0:-1]
print(b)
In [ ]:
b = a[-1:0:-5]
print(b)
b = a[-1:-6:-1]
print(b)
In [ ]:
# 列表反转
a = ['Shanghai', 'Beijing', 'Hangzhou', 'Tokyo', 'Osaka']
a.reverse()
print(a)
In [ ]:
# 使用切片来完成反转
a = ['Shanghai', 'Beijing', 'Hangzhou', 'Tokyo', 'Osaka']
b = a[::-1]
print(b)
In [ ]:
# 字符串切片操作类似列表
a = 'abcdefghi'
print(a[1:2])
print(a[3:5])
print(a[:-5:-1])