我有两个字典列表列表,我想比较第一个列表字典的第五个字典和第二个字典列表
例如:
Dictionary A contains [{Name:C}, {Name:A}, {Name:B}]
Dictionary B contains [{Name:A}, {Name:B}, {Name:C}]
如何获取A的第一个词典{Name:C}并检查它是否存在于词典B中。
答案 0 :(得分:0)
您想查看某些字典列表是否包含至少一个映射'name': 'C'
的字典?
any(d['name'] == 'C' for d in list_of_dict if 'name' in dict)
答案 1 :(得分:0)
如果我正确理解您的问题,您应该可以使用内置的集合库来执行此操作。此代码获取一个字典中的值并检查该值是否存在于另一个字典中。
*** Settings ***
Library Collections
*** Variables ***
&{DICTONARY_ONE} = name1=a name2=b name3=c name4=d
&{DICTONARY_TWO} = name1=c name2=a name3=d name4=b
*** Test Cases ***
Dictonary Test
@{dictonary2_list} = Get Dictionary Values ${DICTONARY_TWO}
:For ${item} in @{dictonary2_list}
\ Dictionary Should Contain Value ${DICTONARY_ONE} ${item}
如果这不是你想要的,那么集合中应该有一些可以让你做你需要的东西。这是文档的链接 http://robotframework.org/robotframework/latest/libraries/Collections.html
我希望有所帮助。
答案 2 :(得分:0)
无论是字典还是字符串,只要它是列表的一部分就可以进行比较。
*** Settings ***
Library Collections
*** Test Case ***
Dictionary Validation
${dict1}= Create Dictionary Name A
${dict2}= Create Dictionary Name B
${dict3}= Create Dictionary Name C
@{li}= Create List ${dict3} ${dict1} ${dict2}
@{lj}= Create List ${dict1} ${dict2} ${dict3}
:For ${item1} in @{li}
\ List Should Contain Value ${lj} ${item1}
如果比较是在字典的一部分(不完整的字典),我们需要考虑另一种方式。让我知道它是否有帮助!