# 2.1 序列概覽
Python包含6種內建的序列:列表、元組、字符串、Unicode字符串、buffer對象和 xrange對象。
容器:序列,映射和集合(set)。
# 2.2 通用序列操作
索引(indexing)、分片(sliceing)、加(adding)、乘(multiplying)、檢查某個元素是否屬于序列的成員(成員資格)、計算序列長度、找出最大元素和最小元素的內建函數。
## 2.2.1 索引


## 2.2.2 分片
1.優雅的捷徑
分片操作的實現需要提供兩個索引作為邊界,第一個索引的元素是包含在分片內,而第2個則不包含在分片內。
取得前三個元素:[:3]
取得后三個元素:[-3:]
2.更大的步長
[::length]
## 2.2.3 序列相加
通過加號可以進行序列的連接操作。注意:要類型相同的序列才能進行連接操作。

## 2.2.4 乘法
用數字 * 乘以一個序列會生成新的序列,而在新序列中,原來的序列將被重復 n 次。

// 整除 得到一個整數
## 2.25 成員資格
in
## 2.26 長度、最小值和最大值
max()
min()
len()
# 2.3 列表:Python的“苦力”
列表不同于元組和字符串的地方:列表是可變的(mutable)--可以改變列表的內容,并且列表有很多有用的、專門的方法。
## 2.3.1 list函數

## 2.3.2 基本的列表操作
1.改變列表:元素賦值
2.刪除元素
del name[2]
3.分片賦值
name[2:] = list('ar')
## 2.2.3 列表方法
對象.方法(參數)
1.append
append方法用于在列表末尾追加新的對象

2.count
count方法統計某個元素在列表中出現的次數:

3.extend
extend方法可以在列表的末尾一次性追加另外一個序列中的多個值。

extend與 + 的區別
4.index
index方法用于從列表中找出某個值第一個匹配項的索引位置。

防止報錯,應該先判斷是否存在該項。
5.insert
insert方法用于將對象插入到列表中。

也可以用分片賦值來實現。
6.pop
pop方法會移除列表中的一個元素(默認是最后一個),并且返回該元素的值。

pop方法是唯一一個既能修改列表又返回元素值(墜子None)的列表方法。
使用pop方法可以實現一種常見的數據結構--棧(LIFO,后進先出)。
7.remove
remove方法用于移除列表中某個值的第一個匹配項

如果移除項不存在,會報錯,這里要注意了。
8.reverse
reverse方法將列表中的元素反向存放。

9.sort
sort方法用于在原位置對列表進行排序。

x.sort(),對原來序列進行排序,不返回值;sorted(x),不改變原來序列,返回一個排序后的新序列。
10.高級排序

sort 的可選參數:cmp(默認),key,reverse
# 2.4 元組:不可變序列
元組與列表一樣,也是一種序列。唯一不同是元組不能修改。

元組的創建方法。
## 2.4.1 tuple函數
tuple 函數的功能與 list 函數基本上是一樣的:以一個序列作為參數并把它轉換為元組。

## 2.4.2 基本元組操作
元組其實并不復雜--除了創建元組和訪問元組元素之外,也沒有太多其他操作,可以參照其他類型的序列來實現。

## 2.4.3 那么,意義何在
元組是不可替代的:
元組可以在映射(和集合的成員)中當作鍵使用--而列表則不行。
元組作為很多內建函數和方法的返回值存在,也就是說你必須對元組進行處理。只要不嘗試修改元組,那么,“處理”元組在絕大多數情況下就是把它們當作列表來進行操作(除非需要使用一些元組沒有的方法,例如index和count)
# 2.5 小結
新函數:
cmp(x,y): 比較兩個值
len(seq): 返回序列的升序
list(seq): 把序列轉換成列表
max(args): 返回序列或者參數集合中的最大值
min(args): 返回序列或都參數集合中的最小值
reversed(seq): 對序列進行反射迭代
sorted(seq): 返回已排序的包含seq所有元素的列表
tuple(seq): 把序列轉換成元組