элементы поиска и замены в списке

Вам нужно только добавить этот столбец в базовую таблицу:

alter table master_table add new_column integer;

Все разделы автоматически получат этот новый столбец.

224
задан eyllanesc 1 August 2019 в 07:23
поделиться

5 ответов

>>> a= [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1]
>>> for n, i in enumerate(a):
...   if i == 1:
...      a[n] = 10
...
>>> a
[10, 2, 3, 4, 5, 10, 2, 3, 4, 5, 10]
216
ответ дан 23 November 2019 в 03:56
поделиться
>>> a=[1,2,3,4,5,1,2,3,4,5,1]
>>> item_to_replace = 1
>>> replacement_value = 6
>>> indices_to_replace = [i for i,x in enumerate(a) if x==item_to_replace]
>>> indices_to_replace
[0, 5, 10]
>>> for i in indices_to_replace:
...     a[i] = replacement_value
... 
>>> a
[6, 2, 3, 4, 5, 6, 2, 3, 4, 5, 6]
>>> 
10
ответ дан 23 November 2019 в 03:56
поделиться

Попробуйте использовать понимание списка и тернарный оператор .

>>> a=[1,2,3,1,3,2,1,1]
>>> [4 if x==1 else x for x in a]
[4, 2, 3, 4, 3, 2, 4, 4]
454
ответ дан 23 November 2019 в 03:56
поделиться

Я знаю, что это - очень старый вопрос и существует несметное число способов сделать это. Более простой, который я нашел, использует numpy пакет.

import numpy

arr = numpy.asarray([1, 6, 1, 9, 8])
arr[ arr == 8 ] = 0 # change all occurrences of 8 by 0
print(arr)
1
ответ дан 23 November 2019 в 03:56
поделиться

Понимание списков работает хорошо, а выполнение цикла с помощью enumerate может сэкономить вам немного памяти (поскольку операция по существу выполняется на месте).

Есть еще функциональное программирование. См. Использование карты :

>>> a = [1,2,3,2,3,4,3,5,6,6,5,4,5,4,3,4,3,2,1]
>>> map(lambda x: x if x != 4 else 'sss', a)
[1, 2, 3, 2, 3, 'sss', 3, 5, 6, 6, 5, 'sss', 5, 'sss', 3, 'sss', 3, 2, 1]
31
ответ дан 23 November 2019 в 03:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: