在for循环中存储变化变量的所有值

2024-10-17 00:26:38 发布

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

我有一个名为CurrentLineup的变量,它包含一组5个这样的名称

set(['Player 1', 'Player 2', 'Player 3', 'Player 4', 'Player 5'])

我有一个循环的所有事件在一场比赛中,其中包括其他球员的替代品在游戏中和游戏外。你知道吗

我想做的是创建一个包含所有5个人集的列表,作为CurrentLineup更新,所以我在循环外初始化了以下内容。。。以这段代码为例。你知道吗

Lineup_List = []
Lineup_List.append(Current_Lineup)

For i in game_events:
    if "Enters Game" in i:
        player = 'Player 6'
        Current_Lineup.add(player)
    if "Leaves Game" in i:
        player2 = 'Player 4'
        Current_Lineup.remove(player2)
    if len(Current_Lineup) == 5:
        Lineup_List.append(Current_Lineup)

我的问题是,当我在循环之后返回列表时,它多次使用当前列表的最终版本。你知道吗

如果这个循环运行了两次,我希望Lineup\u List得到以下结果:

[set(['Player 1', 'Player 2', 'Player 3', 'Player 4', 'Player 5']), 
 set(['Player 1', 'Player 2', 'Player 3', 'Player 6', 'Player 5'])]

如何按发生的顺序保留CurrentLineup在循环中采用的各种值?你知道吗


Tags: in名称game游戏列表ifcurrentlist
1条回答
网友
1楼 · 发布于 2024-10-17 00:26:38

在追加集合时,需要对其进行(浅层)复制,否则您只需不断更改相同的集合,也可以在列列表中引用。因此,将最后一行更改如下(添加set()):

Lineup_List.append(set(Current_Lineup))

这将附加一个当前行集合的副本,以便您可以在下一次迭代中安全地更改它,而不会影响已添加的集合。你知道吗

相关问题 更多 >