【问题标题】:What is the pythonic way to detect the last element in a 'for' loop?检测“for”循环中最后一个元素的pythonic方法是什么?
【发布时间】:2010-12-10 11:04:00
【问题描述】:

我想知道对 for 循环中的最后一个元素进行特殊处理的最佳方式(更紧凑和“pythonic”方式)。有一段代码应该只在元素之间调用,在最后一个被禁止。

这是我目前的做法:

for i, data in enumerate(data_list):
    code_that_is_done_for_every_element
    if i != len(data_list) - 1:
        code_that_is_done_between_elements

有没有更好的办法?

注意:我不想通过诸如使用reduce 之类的技巧来实现它。 ;)

【问题讨论】:

  • 他第一个呢?它也应该被压制吗?
  • 你能告诉我们在元素之间做了什么吗?
  • 我想得到一个通用案例的答案,但我需要这个的具体案例是在流上写东西,它们之间有分隔符,就像 stream.write(', '.join(name_list)),但是在 for 循环中执行它而不连接字符串,因为有很多写入...
  • this answer 的前三行确实帮助了我,遇到了类似的挑战。

标签: for-loop python idioms fencepost


【解决方案1】:

我发现在循环表达式之前定义循环值很方便。对于此框示例,匹配循环中的值,或者您可能需要的任何其他位置。

numberofboxes = 1411

for j in range(1,numberofboxes):
    if j != numberofboxes - 1:
        print ("},")
    else:
        print("}")

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-18
  • 1970-01-01
  • 1970-01-01
  • 2019-08-08
  • 1970-01-01
  • 1970-01-01
  • 2019-11-30
相关资源
最近更新 更多