如何从选择嵌套列表中获得随机选择



我有一个简单的嵌套变量列表,其中有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]中获得随机选项?

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

谢谢:(

如果你想让列表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的成员的长度不同,则这些成员被选择的概率不同。所以你应该选择一个适合你的目的。

怎么样

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) 

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

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

最新更新