如何使用机器人框架关键字将列表列表转换为LIST

时间:2016-07-26 03:24:12

标签: robotframework

我正在尝试使用list of list个关键字将robot framework转换为LIST。我的脚本在日志文件中的输出是这样的:

@{ListA} = [ [a, b] | [c, d, e] | f | g] 

我想将此列表展平为

 [ a , b , c , d , e , f , g]

如何转换?

任何建议都会有所帮助。感谢。

1 个答案:

答案 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