找不到任何人

2024-09-30 00:29:35 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有双重问题。我有selectedCards列表,它包含两个元素-卡片等级和西装,格式如下:['6', 'c']

club = u"\u2663" # Unicode codepoint for club

newList = [club for i in selectedCards if i == 'c' else i]

我想把‘c’改成俱乐部的图形表示,但这个表达式不起作用。我试着找了很多,但找不到问题所在。上面写着:SyntaxError: invalid syntax

第二个问题,如果我删除else语句,那么它可以工作,但是它不会输出我想要的内容,它看起来是这样的:[u'\u2663'],甚至思想打印(club)输出♣. 你知道吗

EDIT:newList = [club if i == 'c' else i for i in selectedCards]是正确的语法,这要感谢xtofl。你知道吗


Tags: in元素列表forif格式unicodeelse
1条回答
网友
1楼 · 发布于 2024-09-30 00:29:35

也许你最好还是写一篇文章:

symbols = {
  'c': u"\u2663",
  'h': u"....hearts",
  ...
}

newList = [symbols[card] for card in selectedCards]

(或者,如果您想发挥功能:

map( symbols.get, selectedCards )

()

至于第一个问题:cfrhttps://stackoverflow.com/a/4260304/6610

对于第二个问题,打印,问题:python只提供了“a”列表表示形式;如果您需要字符串形式的列表表示形式,这就为我提供了窍门:

print("".join(newList))

(提示:明智的做法是在包含所有这些逻辑的Card类中表示您的卡,有点像

class Card:
   def __init__(self, rank, suit):
      self.rank = rank
      self.suit = suit

   symbols = {'c': u"\u2663", ...}

   def __str__(self):
      return "".join([self.rank, Card.symbols[self.suit]])

()

相关问题 更多 >

    热门问题