我想知道对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;)
在Python 2.6中从迭代器获取最后一项的最佳方法是什么?例如,说
my_iter = iter(range(5))
Run Code Online (Sandbox Code Playgroud)
什么是最短的代码/最干净的方式4来自my_iter?
我可以做到这一点,但它看起来效率不高:
[x for x in my_iter][-1]
Run Code Online (Sandbox Code Playgroud) 我需要对列表中的最后一个元素进行一些特殊操作.还有比这更好的方法吗?
array = [1,2,3,4,5]
for i, val in enumerate(array):
if (i+1) == len(array):
// Process for the last element
else:
// Process for the other element
我想迭代文件的行,并为每个文件打印一些输出.,\n除最后一行外,所有打印的行最后都应该有一行.
我的第一种方法是使用查找hasNext()不存在的方法.我知道StopIteration引发了异常,但我不确定如何以Pythonic的方式使用它来实现我想要的.