Python 序列函数

来源:互联网 发布:手机电影同声传译软件 编辑:程序博客网 时间:2024/06/01 07:33

Python 序列函数

首先申明下,本文为笔者学习《Python学习手册》的笔记,并加入笔者自己的理解和归纳总结。

1、range()返回一系列连续整数。

>>> range(5)            # 从默认0到5的,不包括5[0, 1, 2, 3, 4]>>> range(2, 5)         # 从2到5[2, 3, 4]>>> range(1, 10, 3)     # 从1到10,步距是3[1, 4, 7]
range常被用来for循环中的序列。
>>> val = "Hello">>> for i in range(len(val)):print i, val[i]0 H1 e2 l3 l4 o

2、zip()可以同时循环多个序列。

>>> L1 = ["name", "age", "addr"]>>> L2 = ["Mike", 18, "ShangHai"]>>> zip(L1, L2)                       # zip把相同位置的值,组成一个元组[('name', 'Mike'), ('age', 18), ('addr', 'ShangHai')]
如果两个序列的数量不同,取较短数量。
>>> L1 = ["name", "age"]              # L1长度为2>>> L2 = ["Mike", 18, "ShangHai"]     # L2长度为3>>> zip(L1, L2)                       # zip的结果长度为2[('name', 'Mike'), ('age', 18)]>>> L1 = ["name", "age", "addr"]      # L1长度为3>>> L2 = ["Mike", 18]                 # L2长度为2>>> zip(L1, L2)                       # zip的结果长度为2[('name', 'Mike'), ('age', 18)]

3、map实现zip的功能

>>> L1 = ["name", "age", "addr"]>>> L2 = ["Mike", 18, "ShangHai"]>>> map(None, L1, L2)[('name', 'Mike'), ('age', 18), ('addr', 'ShangHai')]
如果两个序列的数量不同,取较长数量,空缺以None替代。
>>> L1 = ["name", "age"]              # L1长度为2>>> L2 = ["Mike", 18, "ShangHai"]     # L2长度为3>>> map(None, L1, L2)                 # zip的结果长度为3[('name', 'Mike'), ('age', 18), (None, 'ShangHai')]>>> L1 = ["name", "age", "addr"]      # L1长度为3>>> L2 = ["Mike", 18]                 # L2长度为2>>> map(None, L1, L2)                 # zip的结果长度为3[('name', 'Mike'), ('age', 18), ('addr', None)]

4、enumerate取得元素偏移量和元素值。

>>> L1 = ["name", "age", "addr"]>>> for item in enumerate(L1):print item, (0, 'name') (1, 'age') (2, 'addr')

5、iter和next用来手动迭代,直到发生异常。

>>> L1 = ["name", "age", "addr"]>>> L = iter(L1)          # 迭代L1,赋值给L>>> next(L)               # 调用L的当前值,并往后移动'name'>>> next(L)               # 调用L的当前值,并往后移动'age'>>> next(L)               # 调用L的当前值,并往后移动'addr'>>> next(L)               # L已到最后一位Traceback (most recent call last):  File "<pyshell#189>", line 1, in <module>    next(L)StopIteration

6、其他函数

>>> L = [0, 1, 2, 3, 4, 5]>>> sum(L)                # 求和15>>> any(L)                # 序列中任意一个元素为TrueTrue>>> all(L)                # 序列中所有元素为TrueFalse>>> max(L)                # 最大值5>>> min(L)                # 最小值0

0 0