kad*_*dam 13 python dictionary
是否有一种简单的方法来检测最后一次迭代,同时使用iteritems()?
Bjö*_*lex 12
有一种丑陋的方式可以做到这一点:
for i, (k, v) in enumerate(your_dict.iteritems()):
if i == len(your_dict)-1:
# do special stuff here
Run Code Online (Sandbox Code Playgroud)
但你应该考虑是否需要这个.我几乎可以肯定还有另一种方式.
这是这个更广泛问题的一个特例。我的建议是创建一个类似枚举的生成器,在最后一项上返回 -1:
def annotate(gen):
prev_i, prev_val = 0, gen.next()
for i, val in enumerate(gen, start=1):
yield prev_i, prev_val
prev_i, prev_val = i, val
yield '-1', prev_val
Run Code Online (Sandbox Code Playgroud)
gen = iter(gen)如果您希望它处理序列和生成器,请添加。
| 归档时间: |
|
| 查看次数: |
9618 次 |
| 最近记录: |