Ошибка расщепления в строковых данных с использованием Python - PullRequest
0 голосов
/ 28 февраля 2019

Привет, я хочу разделить строку ниже.Но я получил ошибку в spliitng

import string

description = "ABC:PUNE COLLEGE XYZ:SATARA COLLEGE TTC ACCT KOREGAON SATARA PQR: MUMBAI TTC ACCT NUMBER 45767"

tag_list = ["ABC:", "XYZ:", "TTC ACCT", "PQR:", "TTC ACCT NUMBER"]

for each_tag in tag_list:
    if each_tag[-1] is not ":":
        description = description.replace(each_tag, each_tag + ":")
print(description)

tag_list_formatted = ["ABC:", "XYZ:", "TTC ACCT:", "PQR:", "TTC ACCT NUMBER:"]

for each_new_tag in tag_list_formatted:
    description = description.replace(each_new_tag, "|" + each_new_tag)

print(description)

Пожалуйста, проверьте ниже Ожидаемый вывод

Expected Output :-
"|ABC:PUNE COLLEGE |XYZ:SATARA COLLEGE |TTC ACCT: KOREGAON SATARA |PQR: MUMBAI |TTC ACCT NUMBER: 45767"

Пожалуйста, проверьте ниже Ошибка вывода

Error Output :-
"|ABC:PUNE COLLEGE |XYZ:SATARA COLLEGE |TTC ACCT: KOREGAON SATARA |PQR: MUMBAI |TTC ACCT: NUMBER 45767"

Как я могу решитьвыше ошибка с использованием Python?Пожалуйста, проверьте |TTC ACCT: NUMBER в выводе ошибок.Но я хочу |TTC ACCT NUMBER: Вывод.

1 Ответ

0 голосов
/ 28 февраля 2019

Это замена питона, выглядит следующим образом str.replace(old, new[, max])

old - Это старая подстрока, подлежащая замене.

new -Это новая подстрока, которая заменит старую подстроку.

max - Если задан этот необязательный аргумент max, заменяются только первые вхождения числа.

В вашем случаеу вас есть этот тег TTC ACCT и этот TTC ACCT NUMBER при замене без указания tha max первый TTC ACCT будет TTC ACCT:, а затем TTC ACCT NUMBER будет TTC ACCT : NUMBER, и именно поэтому вы видите TTC ACCT: NUMBER 45767

Сделайте эту строку:

description = description.replace(each_tag, each_tag + ":")

вот так:

description = description.replace(each_tag, each_tag + ":" ,1)

Получите следующий код:

import string

description = "ABC:PUNE COLLEGE XYZ:SATARA COLLEGE TTC ACCT KOREGAON SATARA PQR: MUMBAI TTC ACCT NUMBER 45767"

tag_list = ["ABC:", "XYZ:", "TTC ACCT", "PQR:", "TTC ACCT NUMBER"]

for each_tag in tag_list:
   if each_tag[-1] is not ":":
       description = description.replace(each_tag, each_tag + ":" ,1)

print(description)

tag_list_formatted = ["ABC:", "XYZ:", "TTC ACCT:", "PQR:", "TTC ACCT NUMBER:"]
for each_new_tag in tag_list_formatted:
    description = description.replace(each_new_tag, "|" + each_new_tag)

print(description)

Вывод:

|ABC:PUNE COLLEGE |XYZ:SATARA COLLEGE |TTC ACCT: KOREGAON SATARA |PQR: MUMBAI |TTC ACCT NUMBER: 45767
...