【问题标题】:subtracting strings in array of data python在数据python数组中减去字符串
【发布时间】:2019-03-19 09:38:08
【问题描述】:

我正在尝试执行以下操作:

  1. 创建一个随机数据数组
  2. 创建一组预定义代码(AW、SS)
  3. 减去所有数字以及预定义代码的任何实例。
  4. 如果在第 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]

但这不会产生我正在寻找的结果,因为它会根据项目检查项目。不是部分字符串匹配。

【问题讨论】:

  • 第 3 步几乎是实际编码开始的地方。到目前为止,您尝试过什么?
  • 更新帖子谢谢
  • 对不起,和this your question有什么区别?

标签: python arrays regex pandas loops


【解决方案1】:

使用正则表达式相当简单。

re.findall(r'[A-Z].',item) 应该为您提供字符串中的文本,然后您可以对其进行所需的处理。

您可能希望最终将列表转换为集合并使用difference 操作,而不是循环并删除predefined_code 列表中定义的元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 2017-07-30
    相关资源
    最近更新 更多