【发布时间】:2020-02-21 11:15:48
【问题描述】:
我想编写一个函数,它接受一个 int 或一个 int 列表作为参数并处理该值。
类似的东西:
def func(input):
if isinstance(input, int):
print(input)
else:
for i in input:
print(i)
这对我来说看起来不是很pythonic,但我不知道如何做得更好。有没有办法在 int 上“循环”或将 int “打包”到处理这两个选项的列表中
谢谢
【问题讨论】:
-
您可以使用
lst = [input] if isinstance(input, int) else input之类的东西,然后在循环中迭代lst... -
这是合理的“pythonic”。我更经常这样做的一种方法是
if not isinstance(x, list): x = [x],从而使其成为一个元素列表。然后你可以假设输入是一个列表开始。原则上,您的列表处理代码当然应该能够使用任意大小的列表。 -
谢谢,这是两个漂亮的单行,我可以处理所有相同的。
标签: python for-loop isinstance