python打印字符串中的常见项而不重复

时间:2014-12-07 22:14:38

标签: python string

我需要创建一个带有两个字符串参数的函数,并返回一个只包含两个参数字符串中的字符的字符串。返回值中不应有重复的字符。

这就是我所拥有的,但如果有一个以上的话,我需要让它只打印一次

def letter(x,z):
    for i in x:
        for f in z:
            if i == f:
                s = str(i)
                print(s)

3 个答案:

答案 0 :(得分:5)

如果订单不重要,您可以在每个单词中加上&个字符的交集set,然后将join设置为单个字符串并return它。

def makeString(a, b):
    return ''.join(set(a) & set(b))

>>> makeString('sentence', 'santa')
'nts'

答案 1 :(得分:1)

试试这个

s = set()

def letter(x,z):
    for i in x:
        for f in z:
            if i == f:
                s.add(i)


letter("hello","world")
print("".join(s))

它会打印'ol'

答案 2 :(得分:1)

如果由于某种原因set不是你的包(也许你想在一个或另一个字符串中保持顺序,请尝试:

def common_letters(s1, s2):
    unique_letters = []
    for letter in s1:
        if letter in s2 and letter not in unique_letters:
            unique_letters.append(letter)

    return ''.join(unique_letters)

print(common_letters('spam', 'arthuprs'))

(假设Python 3为print())。