python - 如何同时从单词列表中检查和删除“/”和“-”
问题描述
我在列表中有以下单词
listx=['info/base','tri-gen']
我正在尝试同时删除“/”和“-”。
目前我有两个单独的代码块(如下所述)实现上述
listx=['info/base','tri-gen']
if '/' in listx:
listmain= '/'.join(listx).split('/')
listmain = list(filter(None, listmain))
if '-' in listx:
listmain= '-'.join(listx).split('-')
listmain = list(filter(None, listmain))
我如何在单个 if 条件下实现它,或者有没有办法包含许多条件,例如如下
'-','/'.join(listx).split('-','/')
预期产出
listx=['info base','tri gen']
解决方案
快速的方法是使用该re
模块,它为您提供了正则表达式的魔力。随意阅读文档:https ://docs.python.org/3/library/re.html
import re
listx=['info/base','tri-gen']
[re.sub("\/|\-"," ",i) for i in listx]
输出:
['info base', 'tri gen']
编辑
对于您的评论,我认为您可以在没有 if 语句的情况下逃脱。
此正则表达式将找到您需要的所有单词,同时忽略括号中的单词:
\b\w+\b(?![\(\w+\)])
在工作中看到它:https ://regex101.com/r/YqhJDb/1
你可以实现这样的事情:
[" ".join(re.findall(r"\b\w+\b(?![\(\w+\)])", i)) for i in listx]
输出:
['info base', 'tri gen', 'century tech limited']
推荐阅读
- android - 如何为 BottomSheetDialog 设置 DayNight 主题
- git - 如何轻松区分位于不同分支中的配置属性
- php - 如何在 localhost 中运行 phalcon 项目
- python - Python中的Clusterizaztion:如何对唯一ID对列表进行分组?
- sql - 根据 Case 语句连接两个表
- python - 如何使用 OpenMDAO 中的两个隐式且可能耦合的系统进行优化?
- javascript - [Vue 警告]:渲染错误:“RangeError: Invalid array length”[Vue JS]
- laravel - Laravel - 如何获取 available_leave_days 并将其包含在视图刀片的当前休假表中
- gekko - 为什么这段代码在使用不同的程序时会返回不同的结果?
- r - ggplot2 中缺少 x 轴组名称