在数据数组中减去字符串python

时间:2018-10-15 01:22:09

标签: python arrays regex pandas loops

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

  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]

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

1 个答案:

答案 0 :(得分:0)

使用正则表达式非常简单。

Compile The local variable map may not have been initialized应该给您字符串中的文本,然后您可以对此进行所需的处理。

您可能希望最终将列表转换为集合并使用re.findall(r'[A-Z].',item)操作,而不是循环并删除difference列表中定义的元素。