2013-11-10 4 views
0

Как я могу взять строку и вставить ее в список вместо другой строки, которая уже существует (так что я не ошибаюсь)?Как заменить строку в списке другой строкой?

пример:

l = ["rock", "sand", "dirt"] 
l.remove[1] 
l.insert(1, "grass") 

есть более простой способ сделать это, чем это? Что мне делать, если у меня есть пустой список и порядок?

ответ

4

Все, что вам нужно:

>>> l = ["rock", "sand", "dirt"] 
>>> l[1] = "grass" 
>>> l 
['rock', 'grass', 'dirt'] 
>>> 

Списки поддерживают прямую замену в Python с помощью list[index] = value.

+0

OMG duh! Thanks – codeman99

+1

@ user2976947 - Счастлив помочь! Не забудьте принять ответ (нажмите галочку), когда система позволяет вам. – iCodez

4

вы также можете непосредственно заменить элемент: l[1] = 'grass'

0

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

def replace_list_item(old, new, l): 
    ''' 
    Given a list with an old and new element, replace all elements 
    that match the old element with the new element, and return the list. 
    e.g. replace_list_item('foo', 'bar', ['foo', 'baz', 'foo']) 
    => ['bar', 'baz', 'bar'] 
    ''' 
    while old in l: # check for old item, otherwise index gives a value error 
     index = l.index(old) 
     l[index] = new 
    return l 

затем:

l = ["rock", "sand", "dirt", "sand"] 
replace_list_item('sand', 'grass', l) 

возвращается:

['rock', 'grass', 'dirt', 'grass'] 
0

Кроме того, если вы неуверенный в индексе элемента, который вы хотели бы заменить, вы просто используете: Скажите, что предмет, который вы хотите заменить, «грязь», вы просто заходите:

rightIndex = l.index("dirt") 
l[rightIndex] = "grass 

Это заменит «грязь» на «траву», если вы не уверены в индексе «травы» в списке «l».

Смежные вопросы