微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

“ For”循环第一次迭代

如何解决“ For”循环第一次迭代

设计模式有多种选择。

seq= something.get()
root.copy( seq[0] )
foo( seq[0] )
for member in seq[1:]:
    somewhereElse.copy(member)
    foo( member )

或这个

seq_iter= iter( something.get() )
head = seq_iter.next()
root.copy( head )
foo( head )
for member in seq_iter:
    somewhereElse.copy( member )
    foo( member )

人们抱怨这不是“ DRY”,因为“冗余foo(member)”代码。这是一个荒谬的说法。如果是这样,那么所有功能只能使用一次。如果只能有一个引用,定义一个函数有什么意义?

解决方法

我想询问在第一次循环迭代中是否存在一种优雅的pythonic方式来执行某些功能。我能想到的唯一可能性是:

first = True
for member in something.get():
    if first:
        root.copy(member)
        first = False
    else:
        somewhereElse.copy(member)
    foo(member)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。