如何从 select 嵌套列表中取回随机选择?

How to get a random choice back from select nested lists?

我有一个简单的嵌套变量列表,其中包含 6 个玩家姓名。如下所示。

player_options = [[person_1, person_2],[person_3, person_4], [person_5, person_6]]

我想要得到的是第一个巢中的随机变量,然后是第二个或第三个巢中的随机变量。我目前能够 select 从第一个巢和第二个 OR 第三个中随机 select 但不是第二个 AND 第三个?

我目前拥有的代码是

pair_1 = random.choice(player_options[0]) + random.choice(player_options[1]) 

我将如何从 nest [0] 中随机选择以及从 nest [1] 或 [2] 中随机选择?

如果您需要更多信息,请告诉我!

谢谢:)

怎么样

biggest_index = len(player_options) - 1 # Get the biggest/last index
second_choice = random.randint(1,biggest_index) # Chose a random index between the second (1) and the last one
pair_1 = random.choice(player_options[0]) + random.choice(player_options[second_choice]) 

或者第二次使用选择函数两次:

second_choice = random.choice(player_options[1:]) # Choose random element after first index
pair_1 = random.choice(player_options[0]) + random.choice(second_choice) 

如果您希望列表 2 和 3 中所有玩家的概率相同,您可以为此连接列表:

pair_1 = random.choice(player_options[0]) + random.choice(player_options[1] + player_options[2]) 

如果您希望首先在列表之间进行 50%-50% 的拆分选择,然后在所选列表之间统一,您可以链接 2 choice 调用,例如:

pair_1 = random.choice(player_options[0]) + random.choice(random.choice(player_options[1:3])) 

请注意,如果列表 2 和 3 的成员长度不同,它们会产生不同的被选中概率。所以你应该选择适合你的目的。

您可以简单地加入最后两个嵌套并在加入的列表中随机选择。

pair_1 = random.choice(player_options[0]) + random.choice(player_options[1]+player_options[2])