【发布时间】:2012-11-06 17:26:09
【问题描述】:
在此之前,我已经搜索过解决此问题的方法,但似乎还没有。因此,我目前正在尝试通过运行http://singpath.appspot.com 上的 Python“路径”来自学 Python,但遇到了一个我不知道如何解决的问题。我尝试了多种不同的方法来解决它,但不断提出不同的错误结果。任何提示/帮助都会很壮观!提前致谢!
问题:
比较字符串
创建一个接受两个字符串输入的函数 并返回一个包含所有出现的字符的字符串 在两个输入中。结果不应有任何重复和 应按排序顺序列出。您可能想使用 字符串模块中的变量小写,以便您拥有所有 字母顺序。
我当前的代码:
def in_both(s1, s2):
s1 = s1.lower()
s2 = s2.lower()
l1=list(''.join(s1.split()))
l2=list(''.join(s2.split()))
same = ''
for i in l1:
if i in l2:
same = ''.join(i)
return same
例子:
call: in_both('apple','orange') recieved: 'e' expected: 'ae'
如您所见,它只收集了一个相似的字符。有什么建议?我尝试了几种不同的方法,但我不确定从这里去哪里!请帮忙!
附:我从一个类似的问题中得到了列表的想法:Python Function to return a list of common letters in first and last names
我了解它是如何工作的,问题是我必须同时返回一个包含所有比较的字符串。感谢“狼”提供角色列表的想法。
【问题讨论】:
-
不确定
''.join(s2.split())的用途。删除空格似乎不是问题 -
你必须使用类似的东西吗?你不能只做
''.join(sorted(set(string1).intersection(string2)))吗? (减去任何套管问题) -
@JonClements 正如我所说“我从位于此处的类似问题中得到列表的想法:Python 函数返回名字和姓氏中常用字母的列表”我仍然是编程新手,但我了解该代码以知道它可以使列表正常工作。感谢您指出这种新的、更简单的做事方法。我学得越多越好!
标签: python python-3.x