当前位置: 首页 > 面试题库 >

查找两个字符串之间的常见字符

宗安宁
2023-03-14
问题内容

我正在尝试 使用for循环从两个不同的用户输入中打印常用字母。(我需要使用for循环来完成它。)我遇到了两个问题:1.我的语句“ If char
not in output …”没有提取唯一值。2.输出为我提供了单个字母列表,而不是单个字符串。我尝试分割输出,但是分割遇到类型错误。

wrd = 'one'
sec_wrd = 'toe'

def unique_letters(x): 
    output =[]
    for char in x: 
        if char not in output and char != " ": 
            output.append(char)
    return output

final_output = (unique_letters(wrd) + unique_letters(sec_wrd))

print(sorted(final_output))

问题答案:

您正在尝试执行“设置相交”。Python有
set.intersection

相同的方法。您可以将其用于您的用例,例如:

>>> word_1 = 'one'
>>> word_2 = 'toe'

#    v join the intersection of `set`s to get back the string
#    v                             v  No need to type-cast it to `set`.
#    v                             v  Python takes care of it
>>> ''.join(set(word_1).intersection(word_2))
'oe'

set将返回字符串中的唯一字符。set.intersection方法将返回这两个集合中共有的字符。

如果for必须使用循环,则可以使用 列表理解 为:

>>> unique_1 = [w for w in set(word_1) if w in word_2]
# OR
# >>> unique_2 = [w for w in set(word_2) if w in word_1]

>>> ''.join(unique_1)  # Or, ''.join(unique_2)
'oe'

以上结果也可以通过显式for循环实现:

my_str = ''
for w in set(word_1):
    if w in word_2:
        my_str += w

# where `my_str` will hold `'oe'`


 类似资料:
  • 问题内容: 如何找到两个子字符串之间的字符串? 我当前的方法是这样的: 但是,这似乎效率很低而且不合Python。什么是做这样的更好的方法? 忘了提:该字符串可能无法启动,并最终和。他们之前和之后的字符可能更多。 问题答案:

  • 我有一个这样的字符串: 我正在尝试获取任何显示为title(title=“anything here”)的内容。我已经尝试过了,但无法正常工作。

  • 问题内容: 给定两个相等长度的字符串,是否有一种优雅的方法来获取第一个不同字符的偏移量? 显而易见的解决方案是: 但这对于如此简单的任务而言似乎并不正确。 问题答案: 您可以使用按位XOR()的一个不错的属性来实现此目的:基本上,当您将两个字符串异或时,相同的字符将变为空字节()。因此,如果我们对两个字符串进行异或运算,我们只需要使用以下命令找到第一个非空字节的位置: 这里的所有都是它的。因此,让

  • 目标是在两个给定的Strings和中找到共同的字母。 常见符号的字符串必须至少有两个字母长。 步骤: 我是一个初学者,在这个案子上挣扎了4个小时。有人能帮我吗?很高兴能收到java的解决方案。 提前谢谢。

  • 我正在使用DocX库来替换word文档中的文本。我想以某种方式找到模板docx文件中“[]”之间的所有字符串,例如[Name]、[LastName]、[Date]等...并将其替换为我以前加载到datagridview中具有相同列名(name、LastName、Date)的值。以下是我目前掌握的信息:

  • 如何获得一个字符串与Python中的另一个字符串相似的概率? 我想得到一个十进制值,如0.9(意味着90%)等。最好使用标准Python和库。 e、 g。