python - 在数据python数组中减去字符串
问题描述
我正在尝试执行以下操作:
- 创建一个随机数据数组
- 创建一组预定义代码(AW、SS)
- 减去所有数字以及预定义代码的任何实例。
- 如果在第 3 步之后仍然存在一个名为“HL”的字符串,则也将其删除并取下一个字母对。如果一个名为“HL”的字符串是数组中唯一的字符串,那么就使用它。
我不知道如何完成步骤 3 - 4。
1.
array_data = ['HL22','PG1234-332HL','1334-SF-21HL','HL43--222PG','HL222AW11144RH','HLSSDD','SSDD']
2.
predefined_code = ['AW','SS']
3.
理想情况下,此步骤的结果将如下所示
result_data = [['HL'],['PG,HL'],['SF','HL'],['HL','PG'],['HL','RH'],
['HL','DD'],['DD']
4. 理想情况下,此步骤的结果将如下所示:
result_data = [['HL'],['PG'],['SF'],['PG'],['RH'], ['DD'],['DD']
对于第 3 步,我尝试了以下代码
not_in_predefined = [item for item in array_data if item not in predefined_code]
但这不会产生我正在寻找的结果,因为它会根据项目检查项目。不是部分字符串匹配。
解决方案
这使用正则表达式相当简单。
re.findall(r'[A-Z].',item)
应该为您提供字符串中的文本,然后您可以对其进行所需的处理。
您可能希望最终将列表转换为集合并使用该difference
操作,而不是循环和删除predefined_code
列表中定义的元素。
推荐阅读
- python - 找出数学表达式中的所有变量
- node.js - 是否有任何技术原因可以避免 npm 中的自依赖本地依赖(文件引用)?
- r - 考虑插入符号中的技术复制
- spring-boot - 如何在spring boot中以dd-mm-yyy格式插入日期
- laravel-8 - API 端点是否可以返回多个模型(例如在前端配置创建/更新表单时)?
- java - Groovy - java同时进行多个转换
- flutter - 从后代小部件调用函数以触发滚动控制器
- microsoft-graph-api - 使用 Graph API 进行 SharePoint 备份
- reactjs - hasura graphql 查询中的特殊字符
- c++ - 模板中的 C++ 双链表