我正在解析一个 xml
文件...所以有一个名为 case
的字段:有时它是一个 OrderedDict
,其他时候它是OrderedDict
列表。就是这样:
OrderedDict([(u'duration', u'2.111'), (u'className', u'foo'), (u'testName', u'runTest'), (u'skipped', u'false'), (u'failedSince', u'0')])
[OrderedDict([(u'duration', u'0.062'), (u'className', u'foo'), (u'testName', u'runTest'), (u'skipped', u'false'), (u'failedSince', u'0')]), OrderedDict([(u'duration', u'0.461'), (u'className', u'bar'), (u'testName', u'runTest'), (u'skipped', u'false'), (u'failedSince', u'0')])]
我希望始终将该表达式作为单个列表。原因是有一个 for 循环来处理这个问题。我想过做这样的事情:
[case]
但后来我会有[[case]]
。我不认为列表连接或串联对我有帮助。一个简单的解决方案是检查 case
是否属于 list
或 OrderedDict
类型,但是我一直在寻找一种更简单的单行 pythonic解决方案就像我上面描述的那样。我怎样才能做到这一点?
最佳答案
由于 list
和 OrderedDict
都是容器,检查类型听起来可能是最简单的解决方案,如果您确定 xml 解析将始终使用 list
类型。
你没有理由不能用一句话来做到这一点:
case = [case] if not isinstance(case, list) else case
关于python - Python 中的列表表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30221817/