相关疑难解决方法(0)

什么是pythonic方法来检测python'for'循环中的最后一个元素?

我想知道对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 for-loop idioms fencepost

166
推荐指数
10
解决办法
15万
查看次数

在Python中将列表迭代为对(当前,下一个)

我有时需要在Python中迭代一个列表,查看"current"元素和"next"元素.到目前为止,我已经完成了以下代码:

for current, next in zip(the_list, the_list[1:]):
    # Do something
Run Code Online (Sandbox Code Playgroud)

这有效并且符合我的预期,但是有更多惯用或有效的方法来做同样的事情吗?

python

121
推荐指数
7
解决办法
4万
查看次数

迭代列表中的所有连续项对

给出一个清单

l = [1, 7, 3, 5]
Run Code Online (Sandbox Code Playgroud)

我想迭代所有连续列表项对(1,7), (7,3), (3,5),即

for i in xrange(len(l) - 1):
    x = l[i]
    y = l[i + 1]
    # do something
Run Code Online (Sandbox Code Playgroud)

我想以更紧凑的方式做到这一点,比如

for x, y in someiterator(l): ...
Run Code Online (Sandbox Code Playgroud)

有没有办法使用内置的Python迭代器来做到这一点?我确定该itertools模块应该有一个解决方案,但我无法弄明白.

python iterator list

76
推荐指数
3
解决办法
3万
查看次数

python迭代器中的最后一个元素

我想迭代文件的行,并为每个文件打印一些输出.,\n除最后一行外,所有打印的行最后都应该有一行.

我的第一种方法是使用查找hasNext()不存在的方法.我知道StopIteration引发了异常,但我不确定如何以Pythonic的方式使用它来实现我想要的.

python

0
推荐指数
1
解决办法
5356
查看次数

标签 统计

python ×4

fencepost ×1

for-loop ×1

idioms ×1

iterator ×1

list ×1