Как сделать словарь, используя два списка, но я хочу, чтобы оба два в качестве значения, а ключ будет имя и sys-id? - PullRequest
0 голосов
/ 24 июня 2019

У меня есть два значения: число и sys_id. Я сделал отдельный список для обоих значений. Как сохранить его в любой другой структуре данных, такой как словарь, или что-то еще, потому что эти список числа и sys_id связаны между собой. Я делаю это на Python

Ниже приведен код, который я сделал

    ticket_num.append(resp['result'][idx]['number'])
    sys_id.append(resp['result'][idx]['sys_id']) ```

This is making two list one for ticket_num  and sys_id. As Ticket number and sys_id are related for example ticket_num = ['INC00012','INC00013','INC00014' ]  , 
sys_id = ['644323432sfasesdf213', '644323432dfgdfkdskrwwr', 'f283044423fdldsf09']


As this list are related like ticket_num[0] is directly link with sys_id[0] 

So can i make a dictionary that contains ticket_num, sys_id directly without creating  lists(for e.g. : {ticket_num : '...' , sys_id = '....' , ..... }

Ответы [ 2 ]

0 голосов
/ 24 июня 2019

Добро пожаловать в Stackoverflow.

Вам действительно нужны списки номеров билетов и идентификаторов?Если нет, то вместо этого вы можете рассмотреть вопрос о создании нужной структуры вместо списков.

Вы не говорите, хотите ли вы иметь возможность искать идентификаторы по номерам билетов или наоборот.Это решение позволяет вам выполнить одно из следующих действий:

idx_from_ticket = {}
ticket_from_idx = {}
# In the loop that produces the values, instead of the current appends ...
    temp = resp['result'][idx]
    idx = temp['sys_id]
    number = temp['number']
    idx_from_ticket[number] = idx
    ticket_from_idx[idx] = number

Затем можно использовать два словаря для сопоставления идентификаторов и номеров билетов.Если вы действительно хотите сделать что-то еще, то я надеюсь, что этот код даст вам достаточно подсказок.

Если у вас уже есть списки и вы хотите их сохранить, тогда функция zip - ваш друг.

idx_from_ticket = dict(zip(ticket_num, sys_id))
ticket_from_idx = dict(zip(sys_id, ticket_num))

zip, при вызове с двумя аргументами выдает последовательность двухэлементных кортежей, которую функция dict предполагает, что это пары ключ / значение.

0 голосов
/ 24 июня 2019

Использование zip с dict

Пример:

ticket_num = ['INC00012','INC00013','INC00014' ] 
sys_id = ['644323432sfasesdf213', '644323432dfgdfkdskrwwr', 'f283044423fdldsf09']

print(dict(zip(ticket_num, sys_id)))

Выход:

{'INC00012': '644323432sfasesdf213',
 'INC00013': '644323432dfgdfkdskrwwr',
 'INC00014': 'f283044423fdldsf09'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...