在 python 中的两个字符串中查找单词的交集
Find intersection of words in two strings in 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
请帮我解决这个问题。
>>> s1='da nesh gah'
>>> s2='dan esh gah'
>>> set(s1.split()) & set(s2.split())
set(['gah'])
在这里,我首先使用 str.split()
. set()
will convert the list to set object, on which you can find intersection between two sets using &
将字符串转换为单词列表。
如果你更喜欢函数式风格,你可以使用set().intersection()
得到相同的结果:
>>> set(s1.split()).intersection(s2.split())
set(['gah'])
我有两个包含单词的字符串:
'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
请帮我解决这个问题。
>>> s1='da nesh gah'
>>> s2='dan esh gah'
>>> set(s1.split()) & set(s2.split())
set(['gah'])
在这里,我首先使用 str.split()
. set()
will convert the list to set object, on which you can find intersection between two sets using &
将字符串转换为单词列表。
如果你更喜欢函数式风格,你可以使用set().intersection()
得到相同的结果:
>>> set(s1.split()).intersection(s2.split())
set(['gah'])