0

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

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

我想得到的是来自第一个嵌套的随机变量,然后是第二个或第三个嵌套的随机变量。我目前可以从第一个巢和第二个第三个中随机选择一个,但不是第二个第三个?

我目前拥有的代码是

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

我将如何从嵌套 [0] 中获得随机选择以及从嵌套 [1] 或 [2] 中获得随机选择?

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

谢谢 :)

4

3 回答 3

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) 
于 2020-10-23T15:44:31.107 回答
2

如果您希望列表 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 的成员产生不同的被选中概率。所以你应该选择一个适合你的目的。

于 2020-10-23T15:46:59.860 回答
1

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

pair_1 = random.choice(player_options[0]) + random.choice(player_options[1]+player_options[2]) 
于 2020-10-23T15:49:04.567 回答