Python - Интегрируйте и сравнивайте список и диктуйте в dict параллельно - PullRequest
0 голосов
/ 31 марта 2020

Я хочу перебирать список и дикт в параллеле и находить одинаковые строки. Если он обнаружил те же самые строки, я хочу добавить пару значений и ключей к диктам, которые я перебирал.

К сожалению, я не могу заставить его работать. Я упростил задачу, чтобы облегчить обмен кодами здесь.

x = ['a', 'c', 'f', 'h']
y = {'root_name': [
        {'value01': 'key01', 'value02': 'a'},
        {'value01': 'key02', 'value02': 'b'},
        {'value01': 'key03', 'value02': 'c'},
        {'value01': 'key04', 'value02': 'd'},
        {'value01': 'key05', 'value02': 'e'},
        {'value01': 'key06', 'value02': 'f'},
        {'value01': 'key07', 'value02': 'g'},
        {'value01': 'key08', 'value02': 'h'},
        {'value01': 'key09', 'value02': 'i'},
        {'value01': 'key10', 'value02': 'j'}
                   ]}

for i, j in zip(x, y['root_name']):
    if i == j['value02']:
        y['root_name']['key_exists'] = True

1 Ответ

1 голос
/ 31 марта 2020

Предполагается, что вы пытаетесь поместить key_exists в словари, в которых значение 'value02' существует в x.

x = ['a', 'c', 'f', 'h']
y = {'root_name': [
        {'value01': 'key01', 'value02': 'a'},
        {'value01': 'key02', 'value02': 'b'},
        {'value01': 'key03', 'value02': 'c'},
        {'value01': 'key04', 'value02': 'd'},
        {'value01': 'key05', 'value02': 'e'},
        {'value01': 'key06', 'value02': 'f'},
        {'value01': 'key07', 'value02': 'g'},
        {'value01': 'key08', 'value02': 'h'},
        {'value01': 'key09', 'value02': 'i'},
        {'value01': 'key10', 'value02': 'j'}
                   ]}

    set_x = set(x)  # To speed checking for presence (only useful for larger lists)
    for i in y['root_name']:
        if i['value02'] in set_x:
            i['key_exists'] = True

    import pprint
    pprint.pprint(y)

Выход

{'root_name': [{'key_exists': True, 'value01': 'key01', 'value02': 'a'},
               {'value01': 'key02', 'value02': 'b'},
               {'key_exists': True, 'value01': 'key03', 'value02': 'c'},
               {'value01': 'key04', 'value02': 'd'},
               {'value01': 'key05', 'value02': 'e'},
               {'key_exists': True, 'value01': 'key06', 'value02': 'f'},
               {'value01': 'key07', 'value02': 'g'},
               {'key_exists': True, 'value01': 'key08', 'value02': 'h'},
               {'value01': 'key09', 'value02': 'i'},
               {'value01': 'key10', 'value02': 'j'}]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...