如果参数是一个序列(列表,元组)或跳过循环但只执行一次操作,那么避免代码重复循环的方法是什么?
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中的重复,我如何确定对象是否可迭代?,如建议的那样.我不想引入不同的条件.我想避免重复.
标准化循环是默认情况,并将您的单个案例转换为可迭代:
if not isinstance(sequence, (list, tuple)):
sequence = [sequence]
for value in sequence:
do_something(value)
Run Code Online (Sandbox Code Playgroud)