Python: отобразитесь на месте [копируют]

16
задан Martijn Pieters 1 September 2016 в 15:44
поделиться

3 ответа

Достаточно просто написать:

def inmap(f, x):
    for i, v in enumerate(x):
            x[i] = f(v)

a = range(10)
inmap(lambda x: x**2, a)
print a
3
ответ дан 30 November 2019 в 22:37
поделиться

Просто напишите очевидный код для этого.

for i, item in enumerate(sequence):
    sequence[i] = f(item)
1
ответ дан 30 November 2019 в 22:37
поделиться

Вы можете использовать лямбда (или def) или лучшее понимание списка (если этого достаточно):

[ do_things_on_iterable for item in iterable ]

В любом случае вы можете быть более явным с помощью цикла for, если что-то станет слишком много сложного.

Например, вы можете сделать что-то вроде этого, но, по-моему, это некрасиво:

[ mylist.__setitem__(i,thing) for i,thing in enumerate(mylist) ]
1
ответ дан 30 November 2019 в 22:37
поделиться
Другие вопросы по тегам:

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