寻找共同的人物

时间:2013-08-10 02:03:12

标签: python python-3.x

问:解决这个问题的最佳方法是什么?

例如,如果两个值是“巧克力”和“蟑螂”,则该函数应返回“choa”

研究:

我找到了find(),或者把它变成了一个列表,这有助于构建函数。

代码:这是我遇到问题的地方!

Value1 = input("Please input a word: ")
Value2 = input("Please input a second word: ")
[How do I find similar letters in two words]
print(similar_letters)

实施例

Please input a word: hello 
Please input a second word: hey
letters in word are : 'he'

2 个答案:

答案 0 :(得分:4)

也许你的意思是普通人物?使用集合,只要您不介意删除重复项并更改元素的顺序:

s1 = set("chocolate")
s2 = set("cockroach")

"".join(s1 & s2)
=> "ahco"

答案 1 :(得分:3)

不正确的原始答案(为了评论而保留)。在许多情况下结果是错误的,特别是当样本Value1Value2被置换时。

output= [ x for x in list(Value1) if x in list(Value2) ]

更正回答(恕我直言),如果所需的结果要在Value1Value2多次出现的输出字符中表示。

''.join( [ x * min(Value1.count(x),Value2.count(x)) for x in sorted( set(Value1) | set(Value2) ) ] )

对于样本Value1='chocolate'Value2= 'cockroach',输出为'acchoo'(这里的任何双关语?:-))。 sorted只有函数使字符按字母顺序显示(因此,使得确切的结果字符串稳定)。