"对于"循环第一次迭代 [英] "For" loop first iteration

查看:248
本文介绍了"对于"循环第一次迭代的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问候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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆