首页 > 解决方案 > 如何删除python中字符串之间的不常见元素?

问题描述

我想删除它们之间不相同的两个字符串中的所有字母。

例如:

str1 = 'abcdefg'

str2 = 'efghijk'

删除我想获得的不同字符后:

str1 = 'efg'

str2 = 'efg'

我有以下代码:

for i in str1:
    if i not in str2:
        str1 = str1.replace("i", "")  #delete that element
                                      #strings are immutable so I create a new string and remove that element

然后我会对另一个字符串做同样的事情。但是,当我将其打印出来时,它不会删除我想要的所有元素。或者有时它不会删除任何元素。
我也尝试过使用双 for 循环,但它不能正常工作。我的逻辑有问题吗?

标签: pythonstring

解决方案


您可以按如下方式定义公共元素

common = set(str1) & set(str2)

然后你可以简单地过滤你的字符串不包括那些元素

str1 = ''.join([i for i in str1 if i in common])
str2 = ''.join([i for i in str2 if i in common])

推荐阅读