Python 合并、洗牌和获取列表前n个元素的较短方法
我正在这样做(见代码),我认为会有一个更短的方法Python 合并、洗牌和获取列表前n个元素的较短方法,python,list,concatenation,unique,shuffle,Python,List,Concatenation,Unique,Shuffle,我正在这样做(见代码),我认为会有一个更短的方法 fd_list = list(set(fd_list1 + fd_list2 + fd_list3)) shuffle(fd_list) fd_list = fd_list[:10] 我想做的是:连接三个列表,将它们洗牌,然后获取前10个元素。我可以合并三个列表,随机抽取10个元素?!大概我不知道怎么做。顺便说一下,结果列表必须是唯一的 编辑*:示例 list1=[1,2,3,6],list2=[],list3=[4,5
fd_list = list(set(fd_list1 + fd_list2 + fd_list3))
shuffle(fd_list)
fd_list = fd_list[:10]
我想做的是:连接三个列表,将它们洗牌,然后获取前10个元素。我可以合并三个列表,随机抽取10个元素?!大概我不知道怎么做。顺便说一下,结果列表必须是唯一的
编辑*:示例
list1=[1,2,3,6],list2=[],list3=[4,5,6,6,7,8,8]
结果应该是这样的
result = [3, 4, 5, 1 ,8 ,2 ,7 ,6]
我认为“样本”解决方案是最好的。非常感谢 如果它是随机的,就无法保证它是唯一的。你说的“唯一”是什么意思?而不是洗牌和[:10]尝试
sample
。击败我。请注意,结果不是随机顺序,而是“设置哈希顺序”。此外,根据三个列表的生成和/或使用方式,如果您首先设置它们,random.sample(set1 | set2 | set3,10)
可能就足够了。
random.sample(set(fd_list1 + fd_list2 + fd_list3), 10)