目前我有这个:
def my_func(input): if not isinstance(input,List): input = [input] for e in input: ...
我正在使用现有的API,因此我无法更改输入参数.使用isinstance()感觉到Hacky,所以有一个正确的方法来做到这一点?
解决方法 我喜欢Andrei Vajna关于hasattr(var,’__ iter__’)的建议.注意这些典型的Python类型的结果:>>> hasattr("abc","__iter__")False>>> hasattr((0,),"__iter__")True>>> hasattr({},"__iter__")True>>> hasattr(set(),"__iter__")True
这具有将字符串视为不可迭代的附加优点 – 字符串是灰色区域,有时您希望将它们视为元素,而另一些作为字符序列.
请注意,在Python 3中,str类型确实具有__iter__属性,这不起作用:
>>> hasattr("abc","__iter__")True总结
以上是内存溢出为你收集整理的pythonic方式将变量转换为列表全部内容,希望文章能够帮你解决pythonic方式将变量转换为列表所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)