我正在使用exrex
包为正则表达式生成所有排列的列表。但是,我有几个正则表达式,并希望创建一组所有排列(没有重复)。所以,假设:
from exrex import generate
my_regexs=('a|b','a|c')
expansions=map(generate,my_regexs)
也许我甚至不需要map
或中间变量expansions
来实现这个-不确定。现在,如何从以下列表中获得排序列表:
# Create a set from all of the expansions (e.g., let's store in myset, for clarity)
# in order to merge duplicates
myset=... # Results in myset containing {'a','c','b'} - hash order
sorted_list=sorted(myset) # Finally, we get ['a','b','c']
谢谢你的帮助,我打赌有一个简单的一行一个列表理解,可以做到这一点
注意:我们处理的是包含多个生成器的map
对象(即,多个生成器的序列容器,而不是列表的list
!)
更新:我想我已经把输入和输出弄清楚了:
Input: ('a|b','a|c') # Two reg-exs, results in all-permutations: ['a','b','a','c']
Output: ['a','b','c'] # Eliminating duplicates, we get the output presented
另一个答案涉及嵌套的理解案例,因此我将更新这个答案以使用
itertools.chain.from_iterable
相关问题 更多 >
编程相关推荐