Как ссылаться на записи с определенным значением в списке в python

#python #list #raspberry-pi

#python #Список #raspberry-pi

Вопрос:

Я получаю данные из базы данных и сохраняю их в списке, называемом relays. в настоящее время этот список выглядит следующим образом:

  relay:  [(4, '26', '19'), (5, '13', '6')]
 

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

Я хочу, чтобы a away ссылался на элемент списка по его первому номеру, например, на переменную [5][1], которая возвращала бы 13. поэтому, чтобы включить этот вывод объекта групповой политики, я могу просто запустить что-то вроде:

 GPIO.output(variable[5][1], True)
GPIO.output(variable[4][2], True)
 

Возможно ли это? (извините, если это глупый вопрос, я новичок в python)

Комментарии:

1. вы имеете в виду, как словарь? variable = {4: (4, '26', '19'), 5: (5, '13', '6')}

Ответ №1:

Вы можете создать dict с первым значением кортежа в качестве ключа и всего кортежа в качестве значения:

 relay =  [(4, '26', '19'), (5, '13', '6')]

# desired = {4: (4, '26', '19'), 5: (5, '13', '6')} 

# dict with first tup val as key and the whole tup as val
variable = {x[0]: (x) for x in relay}  

print(variable)

# print the dict with key `5` and then the first (1) index val of tup
print(variable[5][1])
 

ВЫВОД:

 {4: (4, '26', '19'), 5: (5, '13', '6')}                                                                                                                                      
13 
 

Комментарии:

1. Вы имели в виду variable = {x[0]: (x) for x in relay}; print(variable) ?

2. @quamrana очень понравилось, добавлено ясности! 🙂

Ответ №2:

Вы можете использовать словари в python ( dict )

Инициализируйте его следующим образом:

 variable = {x[0]: x[1:] for x in relay}
 

обратите внимание, что здесь для доступа '13' , подобного вашему примеру, вам нужно написать variable[5][0]