Замена значений из одного набора на значения из другого, если значение set1 = ключ set2? - PullRequest
0 голосов
/ 16 ноября 2018

РЕДАКТИРОВАТЬ: изменил словари на наборы, поскольку я не понял, {} обозначает набор. И исправлено, чтобы сказать, что наборы включены в кортеж.

Я хочу перебрать каждый набор в cardTuple, и для каждое значение , заменить на соответствующее значение (face) из imageDict . Я предполагаю, что мы сопоставляем значение с индексом и каким-то образом выводим лицо. Может быть, мне нужен третий набор или список для хранения результатов перед выводом?

imageDict = dict() # Contains index:face and looks like 1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ? 10 ? 11 ? 12 ? 13 ? 14 ?

cardTuple = ({7, 42, 15, 47, 20, 52, 25, 30}, {3, 39, 14, 47, 55, 22, 23, 31})

Мой текущий подход:

newList = []
newList2 = []
for i in cardTuple:
      for j in i:
           if i == 1: ## maybe this needs to be 0?
               newList.append(imageDict[j])
           elif i == 2: ##  maybe 1?
               newList2.append(imageDict[j])

Любой совет?

1 Ответ

0 голосов
/ 16 ноября 2018

Во-первых, как уже упоминалось в комментариях, dict1 не является диктатом.Это set.Но вы, вероятно, хотели, чтобы это было list.Вот простой способ получить то, что вы хотите, используя списки:

mylist = [1,5,7,10,13]
mydict = {
          1:face1,2:face2,3:face3,4:face4,5:face5,6:face6,7:face7,
          8:face8,9:face9,10:face10,11:face11,12:face12,13:face13
         }

output = [mydict[key] for key in mylist]

>>> [face1, face5, face7, face10, face13]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...