如何用新列表永久替换列表?

2024-09-20 06:39:22 发布

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

def group_together(players, team):
    coplayers = list(players)
    players = []
    players_team = []
    num_players= len(coplayers)
    no_groups = num_players // team
    if num_players%team > 0:
        no_groups += 1
    c = 0
    for i in range(no_groups):
        players_team.append([])
        for j in range(team):
            if c < num_players:
                players_team[i].append(coplayers[c])
                c+=1
    players = players_team

players = [456, 218, 67, 1, 101, 199]
group_together(players, 2)#nothing is returned
print(players)

输出:

[[456, 218], [67, 1], [101, 199]]

我试图用它的新分组替换玩家,但是当我用测试代码运行代码时,它不会在分组中打印新玩家,而是打印未修改的旧玩家

有办法解决这个问题吗?如果是这样,我将非常感激


Tags: noinforifdef玩家grouprange
1条回答
网友
1楼 · 发布于 2024-09-20 06:39:22

“players”它被视为函数中的新局部变量。 您可以使用players.clear()代替players=[], 和players.append(players_team)来赋值

def group_together(players, team):
    coplayers = list(players)
    players.clear()
    players_team = []
    num_players= len(coplayers)
    no_groups = num_players // team
    if num_players%team > 0:
        no_groups += 1
    c = 0
    for i in range(no_groups):
        players_team.append([])
        for j in range(team):
            if c < num_players:
                players_team[i].append(coplayers[c])
                c+=1
    players.append(players_team)

相关问题 更多 >