【问题标题】:Enumerate and Zip to access previous index枚举和 Zip 以访问以前的索引
【发布时间】:2021-03-09 20:50:38
【问题描述】:

使用 zip 时是否需要使用 enumerate 并将 zip 元组转换为列表才能访问上一个索引(即索引 -1)

例如

list1 = [1, 3, 4, 8, 10]
list2 = [1, 3, 6, 7, 9]

combined_list = list(zip(list1, list2))

for i, v in enumerate(combined_list):
    if i > 0:
        print(combined_list[i-1])

简单地说,这是最pythonic的方式吗?

【问题讨论】:

  • 不,只要for v in combined_list[:-1]: print(v)
  • @superbrain 抱歉,但这不允许用户在迭代期间访问上一个索引。
  • @AnnZen 不确定您的意思,但它与 OP 的代码相同。不像你的。
  • @superbrain 哦,谢谢!不敢相信自己。

标签: python indexing enumerate


【解决方案1】:

列表切片,或枚举的第二个参数,如前所述。

for i, v in enumerate( combined_list[1:] ):
    print( i, v, i-1, combined_list[i] )

for i, v in enumerate( combined_list, 1 ):
    print( i, v, i-1, combined_list[i] )

0 (3, 3) -1 (1, 1)
1 (4, 6) 0 (3, 3)
2 (8, 7) 1 (4, 6)
3 (10, 9) 2 (8, 7)

【讨论】:

  • print( i+1, v, i, combined_list[i] ) 会更易于阅读
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多