我有一张绳子的清单。在
A = [
'kite1.json',
'kite1.mapping.json',
'kite1.analyzer.json',
'kite2.json',
'kite3.mapping.json',
'kite3.mapping.mapping.json',
'kite3.mapping.analyzer.json',
]
我需要找到以.json
,.mapping.json
,.analyzer.json
结尾的公共前缀。在
这里,kite1
&;kite3.mapping
得到满足。但是kite2
不是,因为它只以.json
结尾。在
如何找到那些以.json
,.mapping.json
,.analyzer.json
结尾的前缀。在
使用^{} 和capturing groups为每个模式提取所有匹配项。然后取结果集的intersection:
好吧,您只需要为
['.json', '.mapping.json', '.analyzer.json']
中的每个后缀收集一组前缀,然后取这些集合的交集:如果这是code-golf,我可能会赢:
ew()
函数循环使用A
,查找以给定后缀结尾的所有元素并去掉后缀,返回集合中的结果。在使用它,我只计算从三个后缀中的每一个产生的集合的交集。(
&
是交集的运算符。)为了简洁起见,我将“ends with”缩写为
ew
,将“suffix”缩写为sx
。在表达式}个字符”,它的效果是在结尾处截断后缀。在
s[:-len(sx)]
的意思是“从0开始的s
的子串,从末尾到{相关问题 更多 >
编程相关推荐