您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

一种在Python中连续迭代两个或多个容器的优雅而又快速的方法?

一种在Python中连续迭代两个或多个容器的优雅而又快速的方法?

根据您要处理项目的顺序:

import itertools

for items in itertools.izip(deque1, deque2, deque3):
    for item in items:
        some_action(item)

for item in itertools.chain(deque1, deque2, deque3):
    some_action(item)

我建议这样做,以避免对实际的双端队列或双端队列进行硬编码:

deques = [deque1, deque2, deque3]
for item in itertools.chain(*deques):
    some_action(item)

为了证明上述方法的顺序不同:

>>> a = range(5)
>>> b = range(5)
>>> c = range(5)
>>> d = [a, b, c]
>>>
>>> for items in itertools.izip(*d):
...     for item in items:
...         print item,
...
0 0 0 1 1 1 2 2 2 3 3 3 4 4 4
>>>
>>> for item in itertools.chain(*d):
...     print item,
...
0 1 2 3 4 0 1 2 3 4 0 1 2 3 4
>>>
python 2022/1/1 18:37:56 有220人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶