Python列表选择

2024-05-18 06:52:31 发布

您现在位置: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))

Tags: nameself列表capsplayergoalsfullcardlistcardlistone
1条回答
网友
1楼 · 发布于 2024-05-18 06:52:31

Hhow to show the card's name/caps/goals/(trophies):

您可以使用方法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

相关问题 更多 >