Python 序列

Python 提供的几种序列:字符串、 列表、元组

序列通用操作:

1. 索引

Python 从 0 开始计数,从左至右索引依次是 0,1,...,n。从右至左计数来存取元素称为负数索引,依次是 -1,-2,...,-n 。
li[-n] == li[len(list) - n]

2. 切片

序列切片是指使用序列序号对截取序列中的任何部分,从而得到一个新序列。切片操作符是在 [ ] 内提供一对可选数字,用 “ : ” 分隔。冒号前的数字表示切片的开始位置,冒号后的数字表示切片截至(但不包括)位置。

3. 加

对于两个序列,加法表示连接操作,进行操作的两个序列必须是相同的类型(字符串、列表、元组)才可以连接。

a_list = [1, 1, 'x', 'z']
b_list = ["hello"]
a_list + b_list      # [1, 1, 'x', 'z', 'hello']
4. 乘
a  = 'la'
a * 3       # 'lalala'
  ```
##### 5. 检查某个元素是否属于序列 :`in` 和 `not in `
##### 6. 其他一些函数的使用:
  1. len()
  2. min()
  3. max()
  4. sum(seq[index1,index2])
### 1. 列表
列表(list)是一组有序项目的数据结构。Python 在创建列表时,解释器在内存中生成一个类似数组的数据结构存储数据,数据项自上而下存储:

![列表存储方式](http://upload-images.jianshu.io/upload_images/2793567-ce100a98a72aea4c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

##### 1.1 列表举例:
```python
[10, 20, 30, 40]
['frog', 'dog', 'cat']
['learned', 3.2, 5, ['a', 8], True]
1.2 列表操作:
1. 创建列表:
a_list = ['a', 'b', 'c']
   ```
#####  2. 读取元素:
```python
a_list = ['a', 'b', 'c']
a_list[0]
3. 修改 list 中的元素: 只需直接给元素赋值
a_list = ['a', 'b', 'c']
a_list[0] = 123
print a_list     # [123, 'b', 'c']
    ```
#####  4. 增加元素
   (1)"+":
 ```python
 a_list = [1]
 a_list = a_list + ['George', 2.0]
 a_list         # [1, 'George', 2.0]
     ```
      
(2)append():
  ```python  
  a_list = [1, 'Geroge', 2.0]
  a_list.append(['HAH'])
  a_list      # [1, 'Geroge', 2.0, ['HAH']]
        ```
      
(3)extend():
   ```python  
   a_list = [1, 'Geroge', 2.0, ['HAH']]
   a_list.extend(['x', 'y'])
   a_list        # [1, 'Geroge', 2.0, ['HAH'], 'x', 'y']
         ```
      
(4)insert(): 将一个元素插入到任意位置 [list.insert(index, obj)](http://www.runoob.com/python/att-list-insert.html)
   ```python
   a_list = [1, 'Geroge', 2.0, ['HAH'], 'x', 'y']
   a_list.insert(0, 'bb')
   a_list       # ['bb', 1, 'Geroge', 2.0, ['HAH'], 'x', 'y']
   a_list.insert(3,True)
   a_list       #  ['bb', 1, 'Geroge', True, 2.0, ['HAH'], 'x', 'y']
        ```
##### 5. 检索元素
  (1)count() 方法计算列表中某个元素出现次数
  ```python
  a_list = [1, 2, 3, 1, 3]
  a_list.count(1)    # 2
     ```  
  (2)in 运算符返回某个元素是否在该列表中
   ```python
   a_list = [1, 2, 3, 1, 3]
   3 in a_list         # True
   3 not in a_list      # False
   'x' in a_list         # False
        ```
##### 6. 删除元素
  (1)使用 del 语句删除某个特定位置的元素
  ```python
  a_list = [1, 2, 3, 1, 3]
  del a_list[1]
  a_list        # [1, 3, 1, 3]
        ```
  (2)remove() 删除列表中第一个匹配项
 ```python
 a_list = [1, 3, 1, 3]
 a_list.remove(3)
 a_list         # [1, 1, 3]
        ```
  (3)pop() 弹出指定位置的元素,缺省参数时弹出最后一个元素
  ```python
  a_list = [1, 1, 3]
  a_list.pop()        # 3
  a_list.extend(['x','y','z'])
  a_list       # [1, 1, 'x', 'y', 'z']
  a_list.pop(3)        # 'y'
  a_list       #  [1, 1, 'x', 'z']
        ```
##### 7. 列表的方法还有:
  > *  list.reverse() 原地反转列表元素顺序
  > * list.sort(obj) 为列表排序

### 2. 元组
元组一旦创建就不能改变。
##### 元组操作
  (1)建立元组
  ```python
  tup = (1,2,'a','b','c')
  tup       # (1, 2, 'a', 'b', 'c')
    ```
 (2)访问元组
  ```python
  tup = (1, 2, 'a', 'b', 'c')
  tup[1:3]        # (2, 'a')

(3)元组连接

tup1 = (1, 2, 3, 4, 5)
tup2 = ('a', 'b', 'c')
tup1 + tup2      # (1, 2, 3, 4, 5, 'a', 'b', 'c')
tup1 = tup2 
tup1         #  ('a', 'b', 'c')

(4)删除元组: 元组中的元素值不允许删除,但可使用 del 删除整个元组

tup1 =  ('a', 'b', 'c')
del tup1

3. 字符串

字符串操作

(1)index: string.index(str, beg=0, end=len(string))

s = 'Python'
s.index('P')      # 0
s.index('h', 1, 4)  # 3
s.index('h', 4, 5)  
    #Traceback (most recent call last):
    #File "<stdin>", line 1, in <module>
    #ValueError: substring not found

(2)find: string.find(str, beg=0, end=len(string))

s = 'Python'
s.find('w')        # -1
s.find('t', 1)      # 2
s.find('t', 3, 4)    #  -1

(3)replace: string.replace(str1, str2, num=string.count(str1))
把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次.

s = 'lalala'
s.replace('a', 'o')     # 'lololo'
s.replace('l', 'h', 2)  #  'hahala'

(4)count: string.count(str, beg=0, end=len(string))

s = 'alienalien'
s.count('a')        # 2
s.count('a', 0, 3)  # 1

(5)split: string.split(str="", num=string.count(str))
split 默认以字符串中的空格作为分隔符进行分割

s = 'Python'
s.split()   # ['Python']
s = 'hello Python I love it .'
s.split()   # ['hello', 'Python', 'I', 'love', 'it', '.']
s.split(‘ ‘, 2)  # ['hello', 'Python', 'I love it .']
 ```
(6)join: **[string.join(seq)](http://www.runoob.com/python/att-string-join.html)**
以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
```python
c = ['hello', 'Python', 'I love it .']
s = ' '.join(c)
s          # 'hello Python I love it .'

字符串、列表、 元组转换

(1)字符串 >>> 列表:list()

str = '123.45'
list(str)        # [ '1', '2', '3', '.', '4', '5']

(2)字符串 >>> 元组: tuple()

str = '123.45'
tuple(str)   # ('1', '2', '3', '.', '4', '5')

(3)列表、元组 >>> 字符串:join()

s = ('a', 'n', 'c', 'h', 'o', 'r')
''.join(s)       # 'anchor'
a = ['a', 'b', 'c', 'd']
''.join(a)       # 'abcd'
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容