Python 如何在单词列表中查找子字符串
我试图找出字符串列表中是否存在子字符串, 例如: 我有一个单词列表Python 如何在单词列表中查找子字符串,python,python-3.x,Python,Python 3.x,我试图找出字符串列表中是否存在子字符串, 例如: 我有一个单词列表['GGBASDEPINK'、'ASDEKNIP'、'PINK'、'WORDRRAB'、'BAR'] 粉红色是ASDEKNIP的子字符串,因为粉红色的反面是KNIP 单词BAR是WORDRRAB,因为它的反面是RAB 如何找到substrip是否存在?如果是的话,那么把这个字符串倒过来 因此,新的清单应该是: d = ['GGBASDEPINK','ASDEKNIP','PINK','WORDRRAB','BAR' ,'KNIP'
['GGBASDEPINK'、'ASDEKNIP'、'PINK'、'WORDRRAB'、'BAR']
粉红色是ASDEKNIP的子字符串,因为粉红色的反面是KNIP
单词BAR是WORDRRAB,因为它的反面是RAB
如何找到substrip是否存在?如果是的话,那么把这个字符串倒过来
因此,新的清单应该是:
d = ['GGBASDEPINK','ASDEKNIP','PINK','WORDRRAB','BAR' ,'KNIP', 'RAB']
我试过这样做
d = ['GGBASDEPINK','ASDEKNIP','PINK','WORDRRAB','BAR']
for word in d:
word = word[::-1]
if word in d:
print(word)
但是它没有给任何东西使用
itertools。排列
:
from itertools import permutations
d = ['GGBASDEPINK','ASDEKNIP','PINK','WORDRRAB','BAR']
for x, y in permutations(d, 2):
rev = y[::-1]
if rev in x:
d.append(rev)
print(d)
# ['GGBASDEPINK', 'ASDEKNIP', 'PINK', 'WORDRRAB', 'BAR', 'KNIP', 'RAB']
“对于排列(d,2)中的x,y:“数字2是什么意思?对于长列表,使用
组合
和检查长中短
@schwobasegl,我相信这不会测试每个单词,因为它像你说的那样短,当然在本例中有效。@LordNord,一次取两个单词。组合一次捕获所有对。置换两次捕获所有对。但只有两个相关字符串中较短的一个可以作为另一个字符串的子字符串,因此一个比较是虚假的。但对于成对,增益是微乎其微的,因为当您添加长度比较时,迭代将仅为一半。@balki d=['GGBASDEPINK'、'ASDEKNIP'、'PINK'、'WORDRRAB'、'BAR'、'KNIP'、'RAB']