如何找到两个字符串中都没有出现的字母?

kat*_*a92 4 python

我需要编写代码来打印出两个字符串中没有出现的所有字母.所以基本上我所做的恰恰相反.打印出两个字符串中出现的所有字母.这是代码.我不知道如何改变它.

s1 = input('Enter a string:\n')
s2 = input('Enter second string:\n')
s1 = set(s1)
s2 = set(s2)

def notInother(s1, s2):
    chars = []
    for char in (s1,s2):
        if char not in s2:
            if char not in s1:
                chars.append(char)
    print(chars)
Run Code Online (Sandbox Code Playgroud)

ozg*_*gur 5

首先,您可以合并两个集合|,然后执行-以从字母表中删除字符串中的所有字母:

>>> from string import ascii_letters
>>> set(ascii_letters) - (s1 | s2)
{'e', 'f', 'g', 'h', 'i', 'j', 'k', ...}
Run Code Online (Sandbox Code Playgroud)

你可能想看一下set操作来节省写入循环的麻烦.

使用for循环:

>>> from string import ascii_letters

>>> def notInother(s1, s2):
...     chars = []
...     for char in ascii_letters:
...         if (char not in s1) and (char not in s2):
...             chars.append(char)
...     return chars
Run Code Online (Sandbox Code Playgroud)

  • 非常好.顺便说一下,如果结果不区分大写和小写,可能需要在输入上使用`string.ascii_lowercase`和`.lowercase. (2认同)