pythonic方式将变量转换为列表
发布时间:2020-12-30 23:50:43 所属栏目:Python 来源:互联网
导读:我有一个函数,其输入参数可以是元素或元素列表.如果这个参数是一个单一的元素,那么我把它放在列表中,所以我可以一致地迭代输入. 目前我有这个: def my_func(input): if not isinstance(input, list): input = [input] for e in input: ... 我正在使用现有的A
我有一个函数,其输入参数可以是元素或元素列表.如果这个参数是一个单一的元素,那么我把它放在列表中,所以我可以一致地迭代输入. 目前我有这个: 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 (编辑:4S站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- python – Selenium’WebElement’对象没有属性’Get_Attri
- python – 在列表中查找项目和重复项
- python – Sympy:在多项式中删除高阶项
- Python:如何在字符串中剪切超过2个相等字符的序列
- 在测试python max recursion depth时,为什么我多次遇到Runt
- 使用(Py)GTK调整大小时自动缩放图像
- 如何重定向到DJANGO中包含非ascii字符的查询字符串URL?
- 使用Python在OpenOffice / Microsoft Word中格式化输出
- python ctypes结构错误的字节大小
- python – 最终确保一些代码以原子方式运行,无论如何?