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

How To Convert List of List To LIST Using robot Framework Keywords

我正在尝试使用 robot framework keywords.Output 将 list of list 转换为 LIST,我在日志文件中的脚本是这样的:

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

我想将此列表展平为

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

如何转换?

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

列表理解非常强大,可以与 Evaluate 关键字一起使用。在这里,您可以通过检查它是否已经存在来强制每个项目成为列表 - “(sublist if isinstance(sublist, list) else [sublist])”部分。一旦你有了一个列表的列表,你就可以用列表理解的嵌套能力来展平它。

有些人不赞成 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