list1 = [1,2,3]
list2 = [4,5,6]
我想以这种方式对这些列表进行添加:1 + 4,2 + 5,3 + 6 ..依此类推。
任何帮助都会非常感激。
感谢。
答案 0 :(得分:2)
在Robot Framework中,BuiltIn Library中的计算关键字选项不多。当然没有原生的,我们经常使用Evaluate来评估python表达式。在已经提到的Element-wise addition of 2 lists中进一步解释了这个python表达式。结合以下代码:
*** Test Cases ***
Map Lamda Calc
${list1} Create List ${1} ${2} ${3}
${list2} Create List ${1} ${2} ${3}
${CalcList} Evaluate map(lambda x, y: x + y, $list1, $list2)
Log To Console \n${CalcList}
然后会产生以下控制台响应:
==============================================================================
Test
==============================================================================
Test.calcLists
==============================================================================
Map Lamda Calc
[2, 4, 6]
| PASS |
------------------------------------------------------------------------------
Test.calcLists | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
============================================================================
在代码中,$ {1}构造用于确保存储的值确实是robot framework integer。否则提供一个字符串,然后执行连接。
答案 1 :(得分:0)
使用for in-zip构造的机器人框架本机解决方案 - 它会在两个列表中进行迭代,最长可达较小的列表:
${list a}= Create List 1 5 3 8
${list b}= Create List 2 4 7
${result}= Create List
:FOR ${a} ${b} IN ZIP ${list a} ${list b}
\ ${sum}= Evaluate int($a) + int($b)
\ Append To List ${result} ${sum}
运行时,${result}
的值为[3, 9, 10]
- ${list b}
只有3名成员。
在评估中,所有源列表成员都被转换为int - 因此,如果任何不是类似数字的对象,则case / keyword将在该步骤失败。