Python高级特性---Slice

# 切片.取一个list或者tuple部分元素是非常常见的操作.比如, 一个list如下:
L = ['M', 'S', 'T', 'B', 'J']
# 取前3个一般的办法是[L[0], L[1], L[2]].这种吧办法很笨.如果要取前N个元素, N又很大
# 这样写要类死, 当然你可以用循环, 但这又增加的代码复杂度, 十分繁琐.切片操作符就是为了解决
# 这类问题, 提供了十分简洁的语法.
# 取前三个元素
top_three = L[0:3]  # 表示从索引0开始取, 直到索引3结束, 不包括索引3.当然如果索引第一个是0, 还可以省略L[:3]
print(top_three)

# 我们知道L[-1]表示倒数第一个元素.
print(L[-2:])  #表示取倒数最后两个元素, 右边默认就表示最大的即L[-2:5]

# 取倒数第二个元素
print(L[-2:-1]) # 右边的始终表示最后一个的下一个.


# 前10个数, 每两个取一个
L = list(range(100))
L = L[:10:2]
print(L)

# 所有数
L = list(range(100))
print(L[:]) # L[0:100]

# 所有数, 没5个取一个
print(L[::5])
L = L[::5]
print(type(L)) # list的切片结果还是list

# tuple也是一种list,所以也可以做切片,其结果是tuple

# 字符串一个一看成是一种list, 每个元素是一个字符.所以字符串也可以做切片.

# 小结:
# 1.左边省略不写, 始终表示索引0.右边省略不写, 始终表示最后一个的下一个.
# 2.根据1, 原样复制一个list,可以写成L[:]
# 3 :5:6 ==> (0:5):2 取前五个数, 再这五个数中, 再每隔2个取一个.
# 4 字符串一个一看成是一种list, 每个元素是一个字符.所以字符串也可以做切片.

你可能感兴趣的:(Python高级特性---Slice)