"对于"循环第一次迭代 [英] "For" loop first iteration
本文介绍了"对于"循环第一次迭代的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问候PYC-公牛和PY-女装, 我想询问是否有在第一循环迭代执行某些功能的一个优雅的Python的方式。 我能想到的唯一的可能性是:
第一= TRUE
会员在something.get():
如果第一:
root.copy(会员)
第一=假
其他:
somewhereElse.copy(会员)
FOO(会员)
解决方案
您已经为头尾几种选择的设计模式。
SEQ = something.get()
root.copy(SEQ [0])
FOO(SEQ [0])
会员序列[1:]:
somewhereElse.copy(会员)
FOO(会员)
或者这
seq_iter =国际热核实验堆(something.get())
头= seq_iter.next()
root.copy(头)
FOO(头)
会员在seq_iter:
somewhereElse.copy(会员)
FOO(会员)
人抱怨,这是有点不干,因为多余FOO(会员)code。这是一个荒谬的说法。如果这是真的,那么所有的功能只能使用一次。什么是定义一个函数的点,如果你只能有一个参考?
Greetings pyc-sires and py-ladies, I would like to inquire if there is an elegant pythonic way of executing some function on the first loop iteration. The only possibility I can think of is:
first = True
for member in something.get():
if first:
root.copy(member)
first = False
else:
somewhereElse.copy(member)
foo(member)
解决方案
You have several choices for the Head-Tail design pattern.
seq= something.get()
root.copy( seq[0] )
foo( seq[0] )
for member in seq[1:]:
somewhereElse.copy(member)
foo( member )
Or this
seq_iter= iter( something.get() )
head = seq_iter.next()
root.copy( head )
foo( head )
for member in seq_iter:
somewhereElse.copy( member )
foo( member )
People whine that this is somehow not "DRY" because the "redundant foo(member)" code. That's a ridiculous claim. If that was true then all functions could only be used once. What's the point of defining a function if you can only have one reference?
这篇关于"对于"循环第一次迭代的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文