加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python:将标量视为一个元素列表

发布时间:2020-12-20 11:29:51 所属栏目:Python 来源:网络整理
导读:我正在编写一个 python脚本来处理从文件中读取的列表: l = readListFromFile( myFile )for i in l : # do something to each element 当l有多个元素时,一切正常. 但是,当列表中只有一个元素时,readFromFile会将l作为标量而不是列表返回.因此,我失败了,错误
我正在编写一个 python脚本来处理从文件中读取的列表:

l = readListFromFile( myFile )
for i in l :
    # do something to each element

当l有多个元素时,一切正常.
但是,当列表中只有一个元素时,readFromFile会将l作为标量而不是列表返回.因此,我失败了,错误

object is not iterable

我无法控制readFromFile,我的问题是即使在l只有一个元素的情况下,我怎么能让python把l作为一个alist?

解决方法

一个简单的解决方案是

l = readListFromFile(myFile)
try:
    i = iter(l)
    if isinstance(l,str):
        i = l 
except TypeError:
    i = [l]
for .... in i

即使您更改了readListFromFile以返回另一个iterable,这也会有效.

如果保证是str或列表(或其他可迭代)的单线程解决方案就是

l = readListFromFile(myFile)
for e in [l] if isinstance(l,str) else l:

只使用三元运算符.

顺便说一句,有一个名为readList的方法…并不总是返回一个列表是邪恶的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读