【问题标题】:How do I get the looping index when using Python zip-function?使用 Python zip-function 时如何获取循环索引?
【发布时间】:2012-11-23 13:13:22
【问题描述】:

当同时循环多个 python 列表时,我使用zip-函数,我还想检索循环索引。为此,可以在 zip 函数中包含一个单独的循环索引列表,例如:

for index, item1, item2 in zip(range(len(list1)), list1, list2):
    <do something>

有没有更好的方法来做到这一点(比如enumerate-function)?

【问题讨论】:

    标签: python for-loop indexing


    【解决方案1】:

    你可以解压for中的所有东西:

    >>> for i, (x1, x2) in enumerate(zip([1,2,3], [3,4,5])):
    ...     print i, x1, x2
    ... 
    0 1 3
    1 2 4
    2 3 5
    

    【讨论】:

    • 啊,谢谢,我不知道 enumeratezip 实际上可以组合来实现这个!
    • @DSM,非常有用,谢谢。
    【解决方案2】:

    您可以为此使用enumerate()(注意在for 之后放置括号以解压缩嵌套元组):

    >>> l1 = range(0, 10)
    >>> l2 = range(10, 20)
    >>> for index, (item1, item2) in enumerate(zip(l1, l2)):
    ...   print index, item1, item2
    ... 
    0 0 10
    1 1 11
    2 2 12
    3 3 13
    4 4 14
    5 5 15
    6 6 16
    7 7 17
    8 8 18
    9 9 19
    

    【讨论】:

    • 也感谢您,看到不同的来源提出相同的解决方案总是令人放心! :-)
    猜你喜欢
    • 2011-08-25
    • 2011-03-20
    • 2013-03-19
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 2021-01-10
    • 2021-02-07
    • 2017-08-13
    相关资源
    最近更新 更多