在python中查找两个字符串中的单词的交集

2024-09-29 19:30:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个包含单词的字符串: 'dan esh gah''da nesh gah'

我需要交叉词,在本例中是'gah'

我用了这个密码

vocab=['dan esh gah']
gold=['da nesh gah']
s1 = ''.join(vocab)
s2=''.join(gold)

a=[]
track=[]
for k in range(len(s1)+1):
    if k!=0:
        for ka in range(0,len(s1)+1,k):
            if s1[ka:ka+k] in s2:
                track.append((len(s1[ka:ka+k])+1,s1[ka:ka+k]))
intersect=max(track)[1]
print(intersect)

但答案是错误的:

sh ga

请帮我解决这个问题


Tags: inforlentrackdajoindanvocab
1条回答
网友
1楼 · 发布于 2024-09-29 19:30:32

您可以使用^{}对象上的^{}进行相交

>>> s1='da nesh gah'
>>> s2='dan esh gah'

>>> set(s1.split()) & set(s2.split())
set(['gah'])

这里,我首先使用^{}将字符串转换为单词列表^{}将列表转换为set object,在该列表上可以使用^{}找到两个集合之间的交集

如果您更喜欢函数式样式,可以使用^{}获得相同的结果:

>>> set(s1.split()).intersection(s2.split())
set(['gah'])

相关问题 更多 >

    热门问题