python - 如何删除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 循环,但它不能正常工作。我的逻辑有问题吗?
解决方案
您可以按如下方式定义公共元素
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])
推荐阅读
- git - 我可以在父目录中同时使用 Git 和 Mercurial - Git,在子目录中使用 Mercurial hg?
- laravel - 没有机器人的 Laravel 会话
- python - 我可以在 model_fn、Estimator、Tensorflow 中使用 python for 循环吗?
- javascript - 如何在 D3.js 中为堆叠栏中的每个文本标签添加背景?
- php - Sage Pay Reporting API - 生成的签名哈希无效
- html - 调整大小时无法居中 div
- javascript - 如何使用 SVG.js 为线条制作动画
- java - 如何在Java中用特殊字符分隔字符串
- c - 失败并出现错误:''operator' 不是有效的安装包
- sql - 递归 CTE 如何在 SQL Server 中工作?