Как заменить только текст, который начинается с определенной буквы в списке Python? - PullRequest
0 голосов
/ 08 февраля 2019

Мой вопрос похож на формулу Excel, чтобы заменить или заменить только текст, который начинается с определенной буквы , но мне нужен код на Python.Я пытаюсь сделать вложенный, если, но он заменяет только первый символ, а не весь элемент.

Также элементы буквенно-цифровые

List= ['F43.9', 'F53.2', 'H10.9', 'H60.9', 
       'S83.6', 'S01.88', 'J18.9', 'K35.9', 'S42.20', 'J06.9'....]

Итак, мой желаемый вывод:

Список = ['qwe', 'qwe', 'равный', 'равный', «Хронический», «Хронический», «Ответственный», «Приоритет», «Хронический», «Ответственный», ....]

где мне нужно заменить все значения, начинающиеся с F, такие какF43.9,F53.2,etc"qwe".И аналогично для разных алфавитов.В списке 30 000 элементов с 600 уникальными значениями.

Ответы [ 4 ]

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

попробуйте это:

for i in range(0, len(list)):
    if list[i].startswith('F'):
        list[i] = 'qwe'
    elif list[i].startswith('H'):
        list[i] = 'chronic'
    elif list[i].startswith('S'):
        list[i] = 'liable'
    else list[i].startswith('J'):
        list[i] = 'priority'

и т. Д. *

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

Может использовать list-comprehension для этого

List = ['qwe'+i[1:] if i.startswith('F') else i for i in List]
0 голосов
/ 08 февраля 2019

Используя понимание списка, мы можем достичь этого, выполнив:

new_list = ['qwe' + List[i][1:] if List[i].startswith('F') else List[i] for i in range(len(List)) ]
print(new_list)
['qwe43.9','qwe53.2','H10.9','H60.9', 'S83.6','S01.88','J18.9','K35.9','S42.20',
'J06.9']

Вы можете заменить букву 'F' на любую другую букву в строке, которую хотите заменить начальной буквой.

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

Ваше новое изменение означает, что вы хотите заменить все слово.Просто проверьте, соответствует ли элемент startswith() ожидаемому символу, затем замените его на нужную строку.Это может быть немного надежным, хотя вам лучше использовать словарь.


for i in range(0, len(list)):
    if list[i].startswith('F'):
        list[i] = 'qwe'
    elif list[i].startswith('H'):
        list[i] = 'equals'
    elif list[i].startswith('S'):
        list[i] = 'chronic'

map = {
    'F': 'qwe',
    'H': 'equals'
    'S': 'chronic'
     # etc etc
}

for i in range(0, len(list)):
    if list[i][0] in map.keys():    # check if first char is a key in map
        list[i] = map[list[i][0]]   # if it is, replace list[i] with the value in map

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...