Python数据类型之内建序列函数

1-enumerate函数

功能:遍历序列时,追踪当前元素的索引。
返回:(i, value)

for i, value in enumerate(collection):
   # 使用值做点事

用enumerate构造字典,将序列值映射到索引位置

In [83]: some_list = ['foo', 'bar', 'baz']
In [84]: mapping = {}  # 创建字典
In [85]: for i, v in enumerate(some_list):
   ....:     mapping[v] = i   # 将序列值映射到索引位置
In [86]: mapping
Out[86]: {'bar': 1, 'baz': 2, 'foo': 0}
3.1.3.2 sorted

2-sorted函数

功能:排序
输入:任意序列
返回:已排序的列表

In [87]: sorted([7, 1, 2, 6, 0, 3, 2])
Out[87]: [0, 1, 2, 2, 3, 6, 7]

In [88]: sorted('horse race') # 输入字符串
Out[88]: [' ', 'a', 'c', 'e', 'e', 'h', 'o', 'r', 'r', 's']

3-zip函数

功能:将元素配对
输入:列表、元组或其他序列的元素
输出:列表

In [89]: seq1 = ['foo', 'bar', 'baz']
In [90]: seq2 = ['one', 'two', 'three']

In [91]: zipped = zip(seq1, seq2)
In [92]: list(zipped)
Out[92]: [('foo', 'one'), ('bar', 'two'), ('baz', 'three')]

如果输入序列长度不一,以最短序列为准。

In [93]: seq3 = [False, True]

In [94]: list(zip(seq1, seq2, seq3))
Out[94]: [('foo', 'one', False), ('bar', 'two', True)]

应用一:同时遍历多个序列,与enumerate搭配

In [95]: for i, (a, b) in enumerate(zip(seq1, seq2)):
   ....:     print('{0}: {1}, {2}'.format(i, a, b))
   ....:
0: foo, one
1: bar, two
2: baz, three

应用二:拆分已配对的序列,将行列表转化成列列表

In [96]: pitchers = [('Nolan', 'Ryan'), ('Roger', 'Clemens'),
   ....:             ('Schilling', 'Curt')]

In [97]: first_names, last_names = zip(*pitchers)

In [98]: first_names
Out[98]: ('Nolan', 'Roger', 'Schilling')

In [99]: last_names
Out[99]: ('Ryan', 'Clemens', 'Curt')

4-reversed函数

功能:将序列元素倒序排列。

In [100]: list(reversed(range(10)))
Out[100]: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值