• 序列是最基本的数据结构
  • 序列包括列表、元组、字符串、Unicode字符串、buffer对象和xrange对象
  • 列表可修改,但是元组不能

序列的通用操作

索引

In [1]:
greeting = 'Hello'
In [2]:
greeting[0]
Out[2]:
'H'
In [3]:
#索引可以是负数
greeting[-1]
Out[3]:
'o'
In [4]:
#序列常量也可以用索引
'Hello'[1]
Out[4]:
'e'
In [5]:
#可以对函数返回的序列直接做索引
fouth = raw_input('Year:')[3]
fouth
Year:2005

Out[5]:
'5'

分片

In [7]:
numbers = '0123456789'
In [8]:
#半开半闭区间,左闭右开
numbers[3:7]
#即输出索引号为3 <= index < 7的元素
Out[8]:
'3456'
In [9]:
#可以是负数
numbers[-3:-1]
Out[9]:
'78'
In [11]:
#可省略,即输出之前或之后的所有元素
numbers[-3:]
Out[11]:
'789'
In [12]:
numbers[:3]
Out[12]:
'012'
In [14]:
#甚至可以显示全部元素
numbers[:]
Out[14]:
'0123456789'
In [15]:
#但是索引范围不能跨过0
numbers[-3:1]
Out[15]:
''
In [17]:
#上限也不可以是0
numbers[-3:0]
Out[17]:
''
In [18]:
#可以加入步长(默认为1)
numbers[0:10:2]
Out[18]:
'02468'
In [20]:
#步长可以是负数(此时注意开始点要比结束点大)
numbers[10:0:-2]
Out[20]:
'97531'
In [21]:
#步长不可以是0
numbers[::0]
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-21-26a3d4a8dca1> in <module>()
      1 #步长不可以是0
----> 2 numbers[::0]

ValueError: slice step cannot be zero

序列相加

In [3]:
[1,2,3] + [4,5,6]
Out[3]:
[1, 2, 3, 4, 5, 6]
In [2]:
#只有相同类型的序列才能相加
[1,2,3] + "Hello"
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-2-943814676e0e> in <module>()
      1 #只有相同类型的序列才能相加
----> 2 [1,2,3] + "Hello"

TypeError: can only concatenate list (not "str") to list

乘法

In [5]:
'python '  * 3
Out[5]:
'python python python '
In [6]:
[42] * 3
Out[6]:
[42, 42, 42]
In [7]:
#空列表
[]
Out[7]:
[]
In [8]:
#指定长度的空列表
[None] * 10
Out[8]:
[None, None, None, None, None, None, None, None, None, None]

成员资格

In [10]:
permissions = 'rw'
  • in运算符是布尔运算符,返回True 或False
In [12]:
'a'  in permissions
Out[12]:
False
In [13]:
'w' in permissions
Out[13]:
True
  • 检查用户名和pin码
In [14]:
database = [
    ['zk' , '1111'],
    ['zjx', '2222'],
    ['zps', '3333'],
    ['jqj', '4444']
]
In [15]:
username = raw_input("User name: ")
User name: zk

In [16]:
pin = raw_input("PIN code: ")
PIN code: 1111

In [17]:
if [username, pin] in database : print("Access granted")
Access granted

长度、最大值、最小值

In [18]:
numbers = [100, 34, 678]
In [19]:
#len函数返回序列的元素个数
len(numbers)
Out[19]:
3
In [20]:
#max返回元素的最大值
max(numbers)
Out[20]:
678
In [21]:
#min返回元素最小值
min(numbers)
Out[21]:
34
In []: