2015-12-10 5 views
-1

Как заменить определенные элементы, если у меня есть списки списков в python? Я заинтересован только изменить отдельные элементыЗаменить определенные элементы в списках списков

def replace_item(the_list,toBeReplaced,toBeReplacedBy): 
    for each_item in the_list: 
     if isinstance(each_item,list): 
      replace_item(each_item,toBeReplaced,toBeReplacedBy) 
     else: 
      if each_item == toBeReplaced: 
       each_item=toBeReplacedBy 

    return the_list 

Как, если у меня есть список

[[2,3],[[2,3,5,6],2,6,3],[1,2]] 

и если я хочу, чтобы заменить 2, скажем, на ноль, то результирующая должна быть

[[0,3],[[0,3,5,6],0,6,3],0,6,3,[1,0]] 
+0

Что вы хотите сказать? – dnit13

+0

Я не могу заменить определенное значение на определенные значения этой функцией. Зачем ? –

+0

Список может быть вложенным –

ответ

0

по назначая toBeReplacedBy для each_item, вы не меняете элемент в списке. Так вы это делаете.

def replace_item(the_list,toBeReplaced,toBeReplacedBy): 
     for index,each_item in enumerate(the_list): 
      if isinstance(each_item,list): 
       replace_item(each_item,toBeReplaced,toBeReplacedBy) 
      else: 
       if each_item == toBeReplaced: 
        the_list[index]=toBeReplacedBy 

     return the_list 
+0

в порядке Я получил его. Теперь он отлично работает. –

+0

Я использую этот код, но он дает мне ошибку emp = ri.replace_item (P, float ('Inf'), 10000) Traceback (последний последний звонок): Файл "», строка 1, в темп = ri.replace_item (P, поплавок ('Inf'), 10000) Файл "replace_item.py", строки 36, в replace_item печати each_item ValueError: значение истинности массива с более чем одним элементом неоднозначно. Используйте a.any() или a.all() –

+0

ValueError: значение истинности массива с более чем одним элементом неоднозначно. Используйте a.any() или a.all() –

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