有条不紊地进入for循环

cap*_*cap 2 python for-loop

如果参数是一个序列(列表,元组)或跳过循环但只执行一次操作,那么避免代码重复循环的方法是什么?

def foo(arg1,sequence=None):
    # If possible, loop, else do it once
        if isinstance(sequence,(list,tuple)):
            for value in sequence:
                do_something(arg1)
        else:
            do_something(arg1)
Run Code Online (Sandbox Code Playgroud)

我在for循环中所做的操作比这更长,我想知道你通常使用什么方法来避免这种情况,如果你避免它的话.我经常遇到这个问题而且我没有提出要解决它的问题.

编辑:问题不是在Python中的重复,我如何确定对象是否可迭代?,如建议的那样.我不想引入不同的条件.我想避免重复.

dec*_*eze 6

标准化循环是默认情况,并将您的单个案例转换为可迭代:

if not isinstance(sequence, (list, tuple)):
    sequence = [sequence]

for value in sequence:
    do_something(value)
Run Code Online (Sandbox Code Playgroud)