Заменить функцию в списке строк - PullRequest
0 голосов
/ 12 сентября 2018

Я хотел бы перебрать список строк и заменить каждый экземпляр символа (например, '1') словом.Я запутался, почему это не сработало.

for x in list_of_strings:
    x.replace('1', 'Ace')

Примечание: строки в списках состоят из нескольких символов.('1 из Пиков)

1 Ответ

0 голосов
/ 12 сентября 2018

Вы можете использовать понимание списка:

list_of_strings = [x.replace('1', 'Ace') for x in list_of_strings]

Это естественно в Python.Нет существенного преимущества в изменении вашего первоначального списка напрямую;оба метода будут иметь сложность времени O ( n ).

Причина, по которой ваш код не работает, заключается в том, что str.replace не работает на месте.Он возвращает копию, как указано в документах .Вы можете перебрать объект range, чтобы изменить свой список:

for i in range(len(list_of_strings)):
    list_of_strings[i] = list_of_strings[i].replace('1', 'Ace')

Или использовать enumerate:

for idx, value in enumerate(list_of_strings):
    list_of_strings[idx] = value.replace('1', 'Ace')
...