関数入力をリストにエレガントにキャストする方法はありますか? 入力がすでにリストである場合、それがトップレベルのリストに保持されていることを確認しますか?
例えば:
def pprint(input):
for i in input:
print(i)
a = ['Hey!']
pprint(a) # >>>>'Hey!'
b = 'Hey!'
pprint(b) # >>>> 'H', 'e', 'y', '!' # NOT WANTED BEHAVIOR
これを回避する私の現在の方法は、型チェックを行うことですが、これはあまりpythonicでもエレガントでもありません。より良い解決策はありますか?
# possible solution 1
def pprint2(input):
if type(input) not in [list, tuple]:
input = [input]
for i in input:
print(i)
# possible solution 2
# but I would really really like to keep the argument named! (because I have other named arguments in my actual function), but it does have the correct functionality!
def pprint3(*args):
for i in input:
print(i)