Как перебрать список слов и заменить определенные буквы словами - PullRequest
0 голосов
/ 01 мая 2019

Я пытаюсь перебрать список из нескольких слов. Если присутствует определенная буква, она заменит эту букву и добавит слово к существующему слову. Но он будет работать только со словами в списке, которые имеют эту букву.

list1 = ['06h', '12d', '05h', '04s', '12s', '12c']
#list2 = list(x+'sample' for x in cards)

or 

for x in cards:
    if 's' in x:
        cards.append('ample')[0]

Это добавит 'sample' ко всему, я не знаю, как сделать так, чтобы оно только добавляло 'sample' в ячейки с буквой "s".

list1 = [06h', '12d', '05h', '04s', '12s', '12c']
if "s" in list1:

Должен показать

list2 = [06h', '12d', '05h', '04sample', '12sample', '12c']

Ответы [ 4 ]

1 голос
/ 01 мая 2019

Используйте проверку понимания, если строки заканчиваются на s:

>>> list1 = ['06h', '12d', '05h', '04s', '12s', '12c']
>>> [x + 'ample' if x.endswith('s') else x for x in list1]
['06h', '12d', '05h', '04sample', '12sample', '12c']
0 голосов
/ 01 мая 2019
map(lambda x: x.replace('s','sample'), list1)

тоже подойдет.map применяет функцию к каждому элементу списка и возвращает список результатов.

Python полон инструментов для работы со списками.

0 голосов
/ 01 мая 2019
   list2 =[]
   for x in list1:
         if 's' in x:
            x = x.replace('s', 'sample')
         list2.add(x)
0 голосов
/ 01 мая 2019

вы можете использовать найти и заменить на образцы

list1 = ['06h', '12d', '05h', '04s', '12s', '12c']
l2=[]
for item in list1:
    if item.find('s'):
        l2.append(item.replace('s','samples'))
    else:
        l2.append(item)
print(l2)

['06h', '12d', '05h', '04samples', '12samples', '12c']    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...