#python
#python
Вопрос:
У меня есть список значений внешней ссылки
internal_customer = {'01':'11', '03':'33', '05':'55', '07':'77', '08':'88', '06':'66', '09':'22', '11':'18', '12':'19'}
это я хотел бы использовать для подстановки значения в кортеж:
('03', 'S/N A1631703')
Таким образом, мой результирующий кортеж будет
('33', 'S/N A1631703')
Может ли кто-нибудь указать мне в направлении инструментов, которые я мог бы использовать для достижения этой цели?
Ответ №1:
Распакуйте и получите доступ к dict, используя первый элемент, предполагая, что у вас есть список кортежей:
internal_customer = {'01':'11', '03':'33', '05':'55', '07':'77', '08':'88', '06':'66', '09':'22', '11':'18', '12':'19'}
lst = [('03', 'S/N A1631703'),('05', 'S/N A1631703')]
lst[:] = ((internal_customer[a], b) for a,b in t)
print(t)
кортежи неизменяемы, поэтому нет понятия изменения, вам нужно создать новый кортеж, состоящий из нового значения из dict и существующего второго элемента. lst[:]
Синтаксис, по крайней мере, позволяет изменять исходный список. Вы, конечно, можете просто переназначить имя или создать совершенно новый список, если хотите сохранить оригинал.
Комментарии:
1. Красиво! Большое вам спасибо!
2. Не беспокойтесь, вы можете рассмотреть возможность использования списка вместо кортежей, если вы собираетесь вносить значительные изменения, если логика вашего кода позволяет это.
3. У меня есть список кортежей, в которые я добавляю значения из dict внешней ссылки. Это список результатов из выборки pyodbc. Это то, что вы имеете в виду?
4. Ах, хорошо, тогда не переживайте, я подумал, что это может быть то, что вы можете контролировать при создании.