Python随机抽取元组后如何获取该元组对应的关联数值
解决方法
方案1:直接获取完整随机元组(推荐,效率更高)
你原来的代码只取了随机元组的第一个元素,其实可以直接把整个选中的元组存下来,一次拿到所有需要的字段,无需二次遍历列表:
import random colours = [('green', 1.4), ('blue', 4.067), ('yellow', 6.56), ('black', 9.056), ('red', 10.23)] # 直接取完整的随机元组 selected_colour = random.choice(colours) # 按需提取各个字段 colour_name = selected_colour[0] colour_value = selected_colour[1] # 这就是你要的对应数值,抽到green时就是1.4 colour_number = colours.index(selected_colour) + 1
注意:如果列表里存在重复的颜色名称,index方法会返回第一个匹配项的位置,和你原有列表推导的逻辑一致。
方案2:基于你现有代码的修改
如果你不想改动已经写好的随机取名称、算序号的逻辑,可以通过两种方式直接拿到对应数值:
- 用已经得到的1开头序号反查:
# colour_number 是你已经算出的从1开始的序号 colour_value = colours[colour_number - 1][1]
- 用已经得到的颜色名遍历查找:
# colour_name 是你已经拿到的颜色名称 colour_value = [t[1] for i, t in enumerate(colours) if t[0] == colour_name][0]
内容的提问来源于stack exchange,提问作者tuborg10
相关产品推荐
相关产品推荐

