Используйте внешнюю ссылку значений для преобразования в кортеж на основе значения — Python

#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. Ах, хорошо, тогда не переживайте, я подумал, что это может быть то, что вы можете контролировать при создании.