首页 > 解决方案 > 如何用两组填充字典?

问题描述

我有一个 Card 类,它具有分别访问卡片等级和花色的方法。

class Card:

   def __init__(self, v, p):
      self.value = v
      self.naipe = p

   def get_value(self):
      return self.value

   def get_naipe(self):
      return self.naipe

   def get(self):
      return (self.value, self.naipe)

而且我还有一个功能可以返回混合牌组,还有一个功能可以只返回一张牌。Obs:这些功能不属于卡片类

def shuffle_pack():
   pack = []
   naipes = {'\u2660', '\u2661', '\u2662', '\u2663'}
   values = {'2', '3', '4', '5', '6', '7', 'Q', 'J', 'K', 'A'}

   for value in values:
      for naipe in naipes:
         pack.append(Card(value, naipe))
        
   random.shuffle(pack)

   return pack

def return_card(pack):
   card = pack.pop()
   return card

执行示例:

 pack = shuffle_pack()
 distribui_carta(pack).get_naipe()

'♡'

 pack = shuffle_pack()
 distribui_carta(pack).get_value()

'3'

pack = shuffle_pack()
distribui_carta(pack).get()

('2', '♠')

而不是列表,我想使用字典并用两组填充它。其中第一组,指的是key的值,是deck的花色,deck的值对应字典中的值。我正在寻找类似于 list 的 append 方法的东西,以在键和值之间进行这种“连接”。

我想这样做是为了在不使用 Card 类的情况下分别获取给定卡片的价值和花色。

标签: python-3.xlistdictionary

解决方案


听起来你想要这样的东西:

suits_to_values_dict = {suit: list(values) for suit in suits}

推荐阅读