首页 > 解决方案 > Python列表选择

问题描述

在任何编码方面,我都是一个绝对的业余爱好者,但我一直在尝试使用 Python 创建一个顶级的王牌类型的程序。在下面的代码中,我创建了使用类添加到列表中的玩家卡。我现在正在尝试将列表(fullCardList)随机拆分为两个单独的列表,但有很多问题。列表拆分后,我的目标是比较每个玩家的统计数据,但似乎无法弄清楚如何显示卡片的名称/上限/目标。我希望这是有道理的。谁能给我任何建议?

class Player:
def __init__(self, name, caps, goals, trophies):
    self.name = name
    self.caps = caps
    self.goals = goals
    self.trophies = trophies


CardListOne = Player("Lionel Messi",102, 46, 26)
CardListTwo = Player("Ronaldo", 124, 55, 17)
CardListThree = Player("Mats Hummels", 39, 4, 8)
CardListFour = Player("Angel Di Maria", 65, 15, 10)
CardListFive = Player("Jason", 101,44,12)
CardsListSix = Player("Peter", 45,10,1)

fullCardList = [CardListOne.name, CardListOne.caps,CardListOne.goals,CardListOne.trophies],[CardListTwo.name,CardListTwo.caps,CardListTwo.goals,CardListTwo.trophies],[CardListThree.name, CardListThree.caps, CardListThree.goals, CardListThree.trophies], [CardListFour.name,CardListFour.caps,CardListFour.goals,CardListFour.trophies], [CardListFive.name,CardListFive.caps,CardListFive.goals,CardListFive.trophies]

global playersRandomSelection, computersRandomSelection
playersRandomSelection = []
playersRandomSelection = random.sample(fullCardList,3)

computersRandomSelection = []
computersRandomSelection = random.sample(fullCardList,3)


print("Players name selection: " + str(playersRandomSelection))
print("Computers random selection: " + str(computersRandomSelection))

标签: pythonlistclass

解决方案


如何显示卡片名称/上限/目标/ (奖杯)

您可以使用以下方法vars()

lst = [CardListOne,CardListTwo,CardListThree,CardListFour,CardListFive,CardsListSix]
for n in lst:
    a = vars(n)
    print('\n'.join(f"{k}: {v}" for k,v in a.items()))
    print()

输出:

name: Lionel Messi
caps: 102
goals: 46
trophies: 26

name: Ronaldo
caps: 124
goals: 55
trophies: 17

name: Mats Hummels
caps: 39
goals: 4
trophies: 8

name: Angel Di Maria
caps: 65
goals: 15
trophies: 10

name: Jason
caps: 101
goals: 44
trophies: 12

name: Peter
caps: 45
goals: 10
trophies: 1

推荐阅读