如何在Python中随机选取完整列表而非列表内的单个元素
问题原因分析
- 你使用的
list1 or list2是逻辑判断表达式,只要list1非空,返回值永远是list1,无法实现两个列表的随机选择效果 random.choice()的作用是从传入的可迭代对象中随机抽取一个元素,你传入单个列表时,自然会返回列表内的单个元素,而非完整列表
解决方案
把所有需要候选的列表封装为一个新的父列表,再传入random.choice()即可随机选中完整的子列表,代码示例如下:
import random list1 = ['blue','green'] list2 = ['red','yellow'] # 封装候选列表后调用random.choice picked_list = random.choice([list1, list2]) print(picked_list)
如果后续需要新增候选列表,直接往父列表中添加对应列表变量即可,支持任意数量的候选列表选择。
内容的提问来源于stack exchange,提问作者Painko
相关产品推荐
相关产品推荐

