@whoareyoutofuckinglecture
Junior Python developer (Flask/Sanic)

Проблема с добавлением элементов в словарь с помощью цикла for. Что можно сделать?

Всем привет!
Есть код:

class Move(object):
    """Описывает ход игроков и сопутствующие методы"""

    @staticmethod
    def who(trump, my_hand, comp_hand):
        trumps = {'MY': [], 'COMP': []}
        for i in my_hand.cards:
            if trump in i:
                trumps['MY'] += i
        for j in comp_hand.cards:
            if trump in j:
                trumps['COMP'] += j
        print(trumps)


В списках my_hand и comp_hand содержатся значения вроде: ['10h', 'Кs', 'Ah', '9d', '10s', 'Кh']
Здесь мне необходимо добавить в словарь trumps значения для ключей "MY" и "COMP", если условие выполняется. В качестве значения для ключей словаря мне необходимо добавить целый элемент, выглядеть это должно примерно так:
{ 'MY' : ['10h', 'Кs', 'Ah', '9d', '10s', 'Кh'] }

Однако в словарь значения добавляются по частям, выглядит это вот так:
{'MY': ['В', 's'], 'COMP': ['К', 's', '1', '0', 's']}

Получается, в момент добавления я почему-то итерируюсь ещё и по элементу..

Подскажите, пожалуйста, почему так происходит и что можно предпринять, чтобы значения добавлялись в словарь целиком?

Спасибо!

UPD.: .cards - это список, содержит в себе элементы-строки. Например: ['10h', 'Кs', 'Ah', '9d', '10s', 'Кh']
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
trumps['MY'].append(i)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@ArtiomK
как вариант можно потом преобразовать из листа в строку и переприсвоить значение ключу словаря. Чем являются my_hand.cards и comp_hand.cards, это случайно не строки? Плюс еще декоратор, что делает его код?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы