#!/usr/bin/env python3
# -*- coding: utf-8 -*-

'''





'''


'''
取一个list或tuple的部分元素是非常常见的操作。比如取一个list的前三个元素，笨办法如下
之所以是笨办法，是因为不灵活，如果想取前N个元素就没办法了，这个时候就需要扩展下，取前N个元素，就是索引为0-(N-1)的元素，可以使用循环

'''
L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
L[0],L[1],L[2]

# 使用循环取前n个元素
r = []
n = 3
for i in range(n):
    r.append(L[i])


'''
对这种经常取指定索引范围的操作，用循环十分繁琐，因此python提供了切片(Slice)操作，能大大简化这种操作
取出前3个元素，用一行代码即可搞定 L[0:3] 表示从索引0开始取值，直到索引3为止，但不包括3
如果第一个索引是0，还可以省略
也可以从指定索引开始
索引页支持负数
'''
a = L[0:3]
print(a)

# 索引从0开始可以省略
a = L[:3]
print(a)

# 也可以从指定索引开始
a = L[1:3]
print(a)

# 也可以从指定索引开始
a = L[-2:-1]
print(a)

# 轻松取出前10个
a = L[:10]
print(a)

# 轻松取出后10个
a = L[-10:]
print(a)

# 前10个，每两个取一个
a = L[:10:2]
print(a)

# 什么都不写直接复制一个list
print(L[:])

# tuple 也是一种list,唯一的区别是tuple不可变，因此tuple也支持切片操作，操作的结果仍然是tuple

a = (0, 1, 2, 3, 4, 5)[:3]
print(a)