gpt4 book ai didi

python - 在python中查找以多个后缀结尾的公共(public)前缀

转载 作者:太空宇宙 更新时间:2023-11-03 14:11:23 24 4
gpt4 key购买 nike

我有一个字符串列表。

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 结尾的公共(public)前缀。

这里,kite1 & kite3.mapping 都满足了。但是 kite2 不是,因为它只以 .json 结尾。

我怎样才能找到那些以所有.json.mapping.json.analyzer.json结尾的前缀。

最佳答案

如果这是 code-golf ,我可能会赢:

def ew(sx): 
return set([s[:-len(sx)] for s in A if s.endswith(sx)])

ew('.analyzer.json') & ew('.mapping.json') & ew('.json')

ew() 函数循环遍历 A,查找以给定后缀结尾的所有元素并去除后缀,返回集合中的结果。

使用它,我只需计算三个后缀中的每一个所产生的集合的交集。 (& 是交集运算符。)

为了简洁起见,我将“ends with”缩写为​​ ew,将“suffix”缩写为 sx

表达式 s[:-len(sx)] 表示“s 的子串从 0 开始到 len(sx) characters from the end”,具有从末尾剪断后缀的效果。

关于python - 在python中查找以多个后缀结尾的公共(public)前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37672011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com