希望将字典与设置列表进行比较,并提供给定键供用户使用。与清单比较比较困难。
例如:
我给了钥匙:我想将字典中的所有测试与列表进行比较。
预期结果:
对于A:
测试1:好的
Test2:好的
Test3:好的
Test4:无效
Test5:好的
列表:
data = {'A': [{'Test1', 'abc'},
{'abc', 'def', 'Test2'},
{'abc', 'ghi', 'Test3'},
{'Test4', 'abc, xyz'},
{'abc', 'def','Test5'}],
'B': [{'Test1', 'abc'},
{'abc', 'ghi', 'Test3'},
{'ghi','Test4'},
{'Test5', 'efg'}]}
词典: 给定值A或B作为键,下面是字典,然后与列表进行比较。
testCase = {'Test1': 'abc',
'Test2': 'def',
'Test3': 'ghi',
'Test4': 'ghi',
'Test5': 'def'}
尝试:
given = 'A'
data = {'A': [{'Test1', 'abc'},
{'abc', 'def', 'Test2'},
{'abc', 'ghi', 'Test3'},
{'Test4', 'abc, xyz'},
{'abc', 'def','Test5'}],
'B': [{'Test1', 'abc'},
{'abc', 'ghi', 'Test3'},
{'ghi','Test4'},
{'Test5', 'efg'}]}
testCase = {'Test1': 'abc',
'Test2': 'def',
'Test3': 'ghi',
'Test4': 'ghi',
'Test5': 'def'}
for items in data:
for given in data.keys():
if testCase in data:
print (testCase.keys() + ": Okay")
else:
print (testCase.keys() + ": Invalid")
答案 0 :(得分:0)
key
(A或B)+列表对配对到一个函数中(例如check_items()
)。此外,检查是否在value
的列表中找到'def'
(例如testname
)和'Test2'
(例如data[key]
)可以分离到另一个功能,check_test_ok()
也许像
def check_test_ok(testname, value, case_items):
found = False
for item in case_items:
if (testname in item) and (value in item):
found = True
if found:
print(testname, ": Okay")
return
print(testname, ": Invalid")
def check_items(case_items, test_case):
for testname, value in test_case.items():
check_test_ok(testname, value, case_items)
for key, case_items in data.items():
print('Checking items for ', key)
print('=' * 25)
check_items(case_items, testCase)
print('\n')
Checking items for A
=========================
Test1 : Okay
Test2 : Okay
Test3 : Okay
Test4 : Invalid
Test5 : Okay
Checking items for B
=========================
Test1 : Okay
Test2 : Invalid
Test3 : Okay
Test4 : Okay
Test5 : Invalid
答案 1 :(得分:0)
我这样解决了。
given = 'A'
data = {'A': [{'Test1', 'abc'},
{'abc', 'def', 'Test2'},
{'abc', 'ghi', 'Test3'},
{'Test4', 'abc, xyz'},
{'abc', 'def', 'Test5'}],
'B': [{'Test1', 'abc'},
{'abc', 'ghi', 'Test3'},
{'ghi', 'Test4'},
{'Test5', 'efg'}]}
testCase = {'Test1': 'abc',
'Test2': 'def',
'Test3': 'ghi',
'Test4': 'ghi',
'Test5': 'def'}
for items in data.values():
for given,tests in zip(items,testCase.values()):
print(given,' : ',tests)
if tests in given:
print(testCase.keys() , ": Okay")
else:
print(testCase.keys() , ": Invalid")