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,则上述条件将避免错误
我希望能有所帮助。对编辑来说:“利基”是一个真实的词,而不是一个拼写错误。