You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 12:55:16