如何在Python两个函数间传递列表?实战问题求解
传递列表到
calc_winner函数的方法 你只需要两步就能实现需求:
- 修改
calc_winner函数的定义,让它接收player1和player2作为参数,这样就能在函数内部读取和修改这两个列表 - 调用
get_cards_player()获取返回的两个列表,再把它们传入calc_winner
修改后的完整代码如下:
def get_cards_player(): deck = Deck() deck.shuffle() player1 = [] player2 = [] you_won = False #if u won, var is true, if u lose, var is false for i in range(5): player1_cards = deck.get_card() player1.append(player1_cards.get_name()) player2_cards = deck.get_card() player2.append(player2_cards.get_name()) print('Your Hand:',', '.join(player1)) print('Opponent Hand:',', '.join(player2)) return player1, player2 def calc_winner(player1, player2): # 在这里读取或修改player1和player2 # 示例操作:打印玩家手牌 print("计算胜负中,玩家1手牌:", player1) print("计算胜负中,玩家2手牌:", player2) # 后续可添加胜负判断逻辑,比如返回胜负结果或修改相关变量 # 调用函数并传递参数 player1_hand, player2_hand = get_cards_player() calc_winner(player1_hand, player2_hand)
补充说明
列表在Python里是可变对象,所以在calc_winner里对player1和player2的修改会直接作用到原列表上(比如调用player1.append("新卡牌")),不需要额外返回修改后的列表。如果仅需读取数据,直接使用参数即可。
内容的提问来源于stack exchange,提问作者lilsolar
相关产品推荐
相关产品推荐

