为了账号安全,请及时绑定邮箱和手机立即绑定

如何从选择的嵌套列表中获取随机选择?

如何从选择的嵌套列表中获取随机选择?

幕布斯6054654 2023-12-26 15:41:27
我有一个简单的嵌套变量列表,其中有 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] 中获得随机选择?如果您需要更多信息,请告诉我!
查看完整描述

3 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

如果您希望列表 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 的长度不同,则它们会产生不同的被选择为列表 2 和 3 的成员的概率。因此,您应该选择适合您目的的一种。


查看完整回答
反对 回复 2023-12-26
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

关于什么


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) 



查看完整回答
反对 回复 2023-12-26
?
慕森卡

TA贡献1806条经验 获得超8个赞

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

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



查看完整回答
反对 回复 2023-12-26
  • 3 回答
  • 0 关注
  • 124 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信