python - Python 中的列表表达式

标签 python list dictionary set

我正在解析一个 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 是否属于 listOrderedDict 类型,但是我一直在寻找一种更简单的单行 pythonic解决方案就像我上面描述的那样。我怎样才能做到这一点?

最佳答案

由于 listOrderedDict 都是容器,检查类型听起来可能是最简单的解决方案,如果您确定 xml 解析将始终使用 list 类型。

你没有理由不能用一句话来做到这一点:

case = [case] if not isinstance(case, list) else case

关于python - Python 中的列表表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30221817/

相关文章:

python - 重写 haystack build_page() 函数

c# - 如何计算字典中唯一值的出现次数?

python - 无法导入同一目录和包中的模块

python - 如何刷新 flask 网页?

Python - 这两行是做什么的?

java - 如何在 java 中扩展列表以存储额外的元数据并强制它只接受一种类型的对象?

Python2.7 : Extract slice from a list based on a pattern in a Pythonic way

java - 在下一个 Activity 中创建列表之前,在加载屏幕中显示一个计数器(对列表项进行计数)

python 字典更新差异

python - 如何从两个制表符分隔的文件中获取枢轴线?