列表2中一行中出现的多余单词


def checkio(line1: str, line2: str) -> str:
result = ''
for word in line1.split(','):
if word in line2:
result += word + ','
result = ','.join(sorted(result.split(',')))
return result[1:]

if __name__ == "__main__":
print("Example:")
print(checkio("mega,cloud,two,website,final", "window,penguin,literature,network,fun,cloud,final,sausage")) 

也许这是一个愚蠢的问题,但经过一个比较两个字符串的循环后;两个";出现在结果变量中,尽管它不在的第二个列表中

问题是您使用了;在";(substring(运算符而不是(equal("运算符=="操作人员因此;两个";它发现;两个";其位于单词"的内部;neTWOrk";。

是"两个";处于";窗口,企鹅,文学,ne两个rk,乐趣,云,决赛,香肠">

3个字符的序列:t,w,o出现在第2行,因此它在结果中。

您应该通过拆分第2行来比较集合。

def checkio(line1: str, line2: str) -> str:
result = ''
for word in line1.split(','):
if word in line2.split(','):
result += word + ','
result = ','.join(sorted(result.split(',')))
return result[1:]

单词two在第二个字符串中(在network中(。

将两个字符串拆分为集合,然后在联接中返回这些字符串的交集,这样会更好更容易。

def checkio(line1: str, line2: str) -> str:
s1 = set(line1.split(','))
s2 = set(line2.split(','))
return ','.join(s1 & s2)

if __name__ == "__main__":
print("Example:")
print(checkio(
"mega,cloud,two,website,final", 
"window,penguin,literature,network,fun,cloud,final,sausage"))

必须用"并列出一份清单。你的问题是你在一个字符串中搜索;两个";处于";网络";。我只是在你的函数中加了一行。

''

def checkio(line1: str, line2: str) -> str:
#just add following line
line2_list=line2.split(",")
result = ''
for word in line1.split(','):
if word in line2_list:
result += word + ','
result = ','.join(sorted(result.split(',')))
return result[1:]

if __name__ == "__main__":
print("Example:")
print(checkio("mega,cloud,two,website,final", 
"window,penguin,literature,network,fun,cloud,final,sausage")) 

''

相关内容

  • 没有找到相关文章

最新更新