如何使用机器人框架关键字将列表列表转换为 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
我正在尝试使用 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