Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将口述目录与词典进行比较?_Python_List_Dictionary_Data Structures_Compare - Fatal编程技术网

Python 如何将口述目录与词典进行比较?

Python 如何将口述目录与词典进行比较?,python,list,dictionary,data-structures,compare,Python,List,Dictionary,Data Structures,Compare,希望将字典与集合列表进行比较,并使用给定的键供用户使用。很难与列表进行比较 例如: data = {'A': [{'Test1', 'abc'}, {'abc', 'def', 'Test2'}, {'abc', 'ghi', 'Test3'}, {'Test4', 'abc, xyz'}, {'abc', 'def','Test5'}], 'B': [{'

希望将字典与集合列表进行比较,并使用给定的键供用户使用。很难与列表进行比较

例如:

 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'}]}
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")
我得到了答案:A我想把dict中的所有测试与列表进行比较

testCase =    {'Test1': 'abc',
     'Test2': 'def',
     'Test3': 'ghi',
     'Test4': 'ghi',
     'Test5': 'def'}
预期结果:

 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'}]}
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")
例如:

测试一:好的

测试2:好的

测试3:好的

测试4:无效

测试5:好的

列表:

 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'}]}
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")
字典: 使用下面的dict将值A或B作为键,并与列表进行比较

testCase =    {'Test1': 'abc',
     'Test2': 'def',
     'Test3': 'ghi',
     'Test4': 'ghi',
     'Test5': 'def'}
尝试:

 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'}]}
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")
解决办法
  • 分离逻辑:将检查一个
    (A或B)+列表-对放入一个函数中(例如
    检查项()
    )。此外,如果在
    数据[键]
    的列表中找到
    值(例如
    'def'
    )和
    测试名(例如
    'Test2'
    ),则可以将检查分离到另一个函数,
    检查测试确定()
代码 也许像

def check\u test\u ok(testname、value、case\u项):
发现=错误
对于案例_项目中的项目:
if(项中的testname)和(项中的value):
找到=真
如果发现:
打印(testname,“:OK”)
返回
打印(testname,“:无效”)
def检查项目(案例项目、测试案例):
对于testname,test_case.items()中的值:
检查测试是否正常(测试名称、值、大小写项目)
对于键,data.items()中的case_项:
打印('检查项目',键)
打印('='*25)
检查项目(案例项目、测试案例)
打印(“\n”)
示例输出: 解决办法
  • 分离逻辑:将检查一个
    (A或B)+列表-对放入一个函数中(例如
    检查项()
    )。此外,如果在
    数据[键]
    的列表中找到
    值(例如
    'def'
    )和
    测试名(例如
    'Test2'
    ),则可以将检查分离到另一个函数,
    检查测试确定()
代码 也许像

def check\u test\u ok(testname、value、case\u项):
发现=错误
对于案例_项目中的项目:
if(项中的testname)和(项中的value):
找到=真
如果发现:
打印(testname,“:OK”)
返回
打印(testname,“:无效”)
def检查项目(案例项目、测试案例):
对于testname,test_case.items()中的值:
检查测试是否正常(测试名称、值、大小写项目)
对于键,data.items()中的case_项:
打印('检查项目',键)
打印('='*25)
检查项目(案例项目、测试案例)
打印(“\n”)
示例输出: 我就这样解决了

 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")
我就这样解决了

 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")