#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]