python - 提取两个列表中的匹配子串
问题描述
如果我有两个字符串列表(其中两个列表包含相同数量的元素),例如:
A = ["abc-foo", "abc-bar", "abc-oof", "abc-huh"]
B = ["cde-foo", "cde-bar", "cde-oof", "cde-huh"]
如何获取包含跨元素匹配字符串的列表?
C = ["foo", "bar", "oof", "huh"]
编辑:修改示例。一般来说,我不知道字符串的不匹配部分会有多长时间。我也不知道它们是如何划分的。
我已经看过使用交叉点,但如果我没记错的话,这只有在两个列表中的整个字符串相同时才有效。
解决方案
这是你要找的吗?
A = ["abc-foo", "abc-bar", "abc-foo2", "abc-bar2"]
B = ["cde-foo", "cde-bar", "cde-foo2", "cde-bar2"]
print([i for x,y in zip(A,B) for i in x.split([i for i in x if not i.isalpha()][0]) if i in y])
['foo', 'bar', 'foo2', 'bar2']
推荐阅读
- css - 为什么只有某些字体真棒图标通过 css 出现?
- hyperledger-fabric - Hyperledger Composer 如何增加执行超时
- python - 如何在 python 中使用 libxml2 编写 xml 文件?
- javascript - 为什么数字出现在我的多维数组的末尾?
- linux - 编译 GNUTLS 给出 config.status:error: cannot find input file: 'guile/pre-inst-guile.in'
- javascript - 如何重置 setInterval 函数中的值?
- javascript - 应该在提交时执行的功能不起作用
- sql - 未找到访问更新 QueryDef 参数
- csvhelper - 使用 CsvHelper 读取管道分隔文件时出现问题
- javascript - 提交表单后如何在同一页面中获取成功消息?