【问题标题】:How to fill a dictionary with two sets?如何用两组填充字典?
【发布时间】:2021-06-22 19:01:31
【问题描述】:

我有一个 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 类的情况下单独获取给定卡片的价值和花色。

【问题讨论】:

  • 你能举一个你希望制作的字典的例子吗?从你的描述我不知道你想要什么。 {'♡': ['2', '3', '4']} 之类的东西(但有更多的西装和价值观)?
  • 是的,就是这样。每套西装都有其价值。但是,我打算以与列表类似的方式实现一个 for ,然后将值添加到给定的西装,然后将它们添加到空字典中。

标签: python-3.x list dictionary


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2019-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    相关资源
    最近更新 更多