合并两个列表中的不同元素以创建数据类型?

2024-09-26 22:50:07 发布

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

我是python的新手,正在编写一个基本的扑克游戏。我要做的第一件事就是打印52张卡片。我已经为面值和西装创建了清单。我设置了几个循环来遍历这些面孔和套装,以创建52张独特的卡片。问题是在打印纸牌时,例如黑桃王牌会打印为“A”,“s”,这看起来不太好。我希望它看起来像。那么,如何将一个列表索引中的值添加到另一个列表索引中,使它们彼此相邻地打印呢? 还是我用了错误的结构?我想知道是否为一张既有面值又有套装的扑克牌创建一个数据类型

faces = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"]
suits = ["s", "h", "d", "c"]
deck = []

for i in range (0, len(faces)):
    for j in range (0, len(suits)):
        card = (faces[i], suits[j])
        deck.append(card)
print(deck)

输出: 

 [('A','s'),('A','h'),('A','d'),('A','c'),('2','s'),('2','d'),('2','c'),('3','h'),('3','d'),('3 ','c'),('4','s'),('4','h'),('4','d'),('4','c'),('5','s'),('5','h'),('5','d'),('5','c'),('6','s'),('6','h'),('6',' d'),('6','c'),('7','s'),('7','h'),('7','d'),('7','c'),('8','s'),('8','h'),('8','d'),('8','c'),('9','s'),('9','h'), ('9','d'),('9','c'),('10','s'),('10','h'),('10','d'),('10','c'),('J','s'),('J','h'),('J','d'),('J','c'),('Q','s'), ('Q','h'),('Q','d'),('Q','c'),('K','s'),('K','h'),('K','d'),('K','c')]


Tags: in游戏列表forlenrangecard扑克
3条回答

你可以把这两个字符串加起来。 这将以您想要的形式打印和保存

for i in range (0, len(faces)):
    for j in range (0, len(suits)):
        card = faces[i]+suits[j]
        deck.append(card)
print(deck)

或者可以保存为旧格式,并在另一个循环中添加字符串以进行打印,如下所示。通过这种方式,您可以使用这两个属性将其存储在数据类型中,并且在打印时只需添加它们

for d in deck:
  print(d[0]+d[1],end=' ')

只需将“”改为“+”

faces = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"]
suits = ["s", "h", "d", "c"]
deck = []

for i in range (0, len(faces)):
    for j in range (0, len(suits)):
        card = (faces[i] + suits[j])
        deck.append(card)
print(deck)

你可以用类似于

print(map(lambda h: "".join(h), deck))

使用str.join函数

相关问题 更多 >

    热门问题