2015-01-31 2 views
0

Я искал какое-то время и не нашел решение. Любая помощь очень ценится!Заменить значения в списке с несколькими строками (Python 2.7)

Задача: Я бы хотел найти и заменить все процентные символы («%») в списке нескольких строк. Следующий пример - это короткая версия моих фактических данных, которая содержит гораздо больше строк и столбцов. Вот пример:

x = [['name', 'col1', 'col2'], 
['a', '43.63%', '2'], 
['b', '14.20%', '3.5%'], 
['c', '10%', '3.4%']] 

Желаемый результат:

x = [['name', 'col1', 'col2'], 
['a', '43.63', '2'], 
['b', '14.20', '3.5'], 
['c', '10', '3.4']] 

Мой код:

for row in x: 
    for item in row: 
     item = item.replace("%", "") 
print x 

Я думал, что это будет заменить каждый элемент с новой строки; однако, когда я теперь печатаю x, я получаю исходный список с «%». Пожалуйста, кто-нибудь может увидеть, где я ошибаюсь? Заранее спасибо!

ответ

2

Необходимо на самом деле заменить элемент в списке.

Строки неизменны так вы создаете новый элемент, и в основном не делать ничего с ним здесь:

# create wanted string, but where should it go? 
item = item.replace("%", "") 

Вы можете использовать enumerate для делать то, что вы хотите:

for row in x: 
    for index, item in enumerate(row): 
     # create string *and update row* 
     row[index] = item.replace("%", "") 
print x 
Смежные вопросы