Применить функцию ко всем элементам списка Python - PullRequest
1 голос
/ 06 апреля 2019

Я пытаюсь применить функцию к списку. Функция принимает значение и выдает другое.

например:

myCoolFunction(75)

выдаст новое значение

Пока я использую это:

x = 0
newValues = []

for value in my_list:

    x = x + 1
    newValues.append(myCoolFunction(value))
    print(x)

Я работаю с примерно 125 000 значений, и скорость, с которой это работает, не кажется очень эффективной.

Есть ли более питонический способ применения функции к значениям?

Ответы [ 2 ]

3 голосов
/ 06 апреля 2019

Вы можете использовать map подход:

list(map(myCoolFunction, my_list))

Это применяет определенную функцию к каждому значению my_list и создает объект карты (3.x). Вызов list() создает новый список.

0 голосов
/ 06 апреля 2019

Этот вопрос сильно помечен Pandas связанными вещами. Итак, вот как методы перечисления и понимания списков, упомянутые выше, выполняются с Pandas.

import pandas as pd

def myCoolFunction(i):
    return i+1

my_list = [1,2,3]
df = pd.DataFrame(index=my_list, data=my_list, columns=['newValue']).apply(myCoolFunction)

...