我正在尝试使用list of list
个关键字将robot framework
转换为LIST。我的脚本在日志文件中的输出是这样的:
@{ListA} = [ [a, b] | [c, d, e] | f | g]
我想将此列表展平为
[ a , b , c , d , e , f , g]
如何转换?
任何建议都会有所帮助。感谢。
答案 0 :(得分:3)
列表推导非常强大,可以与Evaluate关键字一起使用。在这里,您可以通过检查它是否已经是强制每个项目列表 - “(子列表,如果是实例(子列表,列表),否则[子列表])”部分。获得列表列表后,可以使用列表推导的嵌套功能将其展平。
有些人对Python中的类型检查不屑一顾,但其中一个难点是字符串和列表可能会出错。这里使用直接类型检查。还有其他方法可以检查对象是否为列表,您可以根据需要对其进行修改。
List of lists and Other Items
@{InnerA} Create List a b
@{InnerB} Create List c d e
@{ListA} Create List ${InnerA} ${InnerB} f g
${flat} Evaluate [item for sublist in $ListA for item in (sublist if isinstance(sublist, list) else [sublist])]
Log List ${flat}
_
INFO : @{InnerA} = [ a | b ]
INFO : @{InnerB} = [ c | d | e ]
INFO : @{ListA} = [ [u'a', u'b'] | [u'c', u'd', u'e'] | f | g ]
INFO : ${flat} = [u'a', u'b', u'c', u'd', u'e', u'f', u'g']
INFO :
List length is 7 and it contains following items:
0: a
1: b
2: c
3: d
4: e
5: f
6: g