我想知道对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
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法?
注意:我不想使用hacks,例如使用reduce;)
我正在经历一个生成器,为什么他们需要特别小心,以Pythonic方式确定当前元素是否是生成器的第一个或最后一个元素?
谢谢
基本上生成标签,所以我有像
<div class="first">1</div>
<div>...</div>
<div class="last">n</div>
Run Code Online (Sandbox Code Playgroud)
所以我想保持循环中的最后一项?
我有
for i in xrange(repeat):
#does my stuff
time.sleep(10)
Run Code Online (Sandbox Code Playgroud)
但是,如果这是最后一次运行,我不希望它睡觉。意思是,如果没有更多的迭代,不要睡觉
我该如何优雅地处理这个问题?