随机选择一个包含特定元素的列表

时间:2019-10-14 06:34:57

标签: python

给出几个列表

l = [[1,2,3,4,5],[1,6,7,8],[2,3,4],[1,9,10,13]]

是否有一种简单的方法可以使用random.choice随机选择一个包含1的列表?我尝试了

这样的简单代码

random.choice(1 in l)

random.choice(l, 1=True),但它们都不起作用。

2 个答案:

答案 0 :(得分:5)

没有内置方法(这很合适),但是您可以执行以下操作:

import random
my_lists = [[1,2,3,4,5],[1,6,7,8],[2,3,4],[1,9,10,13]]
random_list = random.choice([sublist for sublist in my_lists if 1 in sublist])

或使用filter

random_list = random.choice(list(filter(lambda sublist: 1 in sublist, my_lists)))

答案 1 :(得分:0)

尝试以下代码:

获取所有包含1的子列表,并随机返回一个。

sync

编辑:如果没有任何子列表包含1,以上条件将避免错误 希望对您有所帮助。