вычитание строк в массиве данных python - PullRequest
0 голосов
/ 15 октября 2018

Я пытаюсь сделать следующее:

  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 голосов
/ 15 октября 2018

Это довольно просто, используя Regex.

re.findall(r'[A-Z].',item) должен дать вам текст из ваших строк, а затем вы можете выполнить необходимую обработку для этого.

Возможно, вы захотите преобразоватьв конце концов, установить список и использовать операцию difference вместо циклического удаления и удаления элементов, определенных в списке predefined_code.

...