Python 随机选取包含特定元素的列表

Python 随机选取包含特定元素的列表,python,Python,给出了几个列表 l = [[1,2,3,4,5],[1,6,7,8],[2,3,4],[1,9,10,13]] 是否有一种简单的方法可以使用random.choice随机选择包含1的列表?我试过简单的代码,比如 random.选项(1英寸长) 或 random.choice(l,1=True),但它们都不起作用。没有内置的方法(这将非常合适),但您可以执行以下操作: import random my_lists = [[1,2,3,4,5],[1,6,7,8],[2,3,4],[1,9,10,

给出了几个列表

l = [[1,2,3,4,5],[1,6,7,8],[2,3,4],[1,9,10,13]]
是否有一种简单的方法可以使用random.choice随机选择包含1的列表?我试过简单的代码,比如

random.选项(1英寸长)


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

没有内置的方法(这将非常合适),但您可以执行以下操作:

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])
或使用
过滤器

random_list = random.choice(list(filter(lambda sublist: 1 in sublist, my_lists)))
请尝试以下代码:

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

import random

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

lists_with_element = [sub_list for sub_list in a_list if 1 in sub_list]

if len(lists_with_element):
    print(lists_with_element[random.randint(0, len(lists_with_element)-1)])
else:
    print("There is no list containing 1")

编辑:如果没有子列表包含1,则上述条件将避免错误 我希望能有所帮助。

对编辑来说:“利基”是一个真实的词,而不是一个拼写错误。