самый эффективный способ изменить каждый элемент в нескольких списках вместе? - PullRequest
0 голосов
/ 23 декабря 2019

Допустим, у меня есть 3 списка

a = [1.12, 2.23, 3.34]
b = [2.12, 3.23, 4.34]
c = [3.12, 4.23, 5.34]

Моя цель - округлить числа до 1 десятичного знака. поэтому у меня есть эта пользовательская функция:

import math
def round_down(n, decimals=0):
    multiplier = 10 ** decimals
    return math.floor(n * multiplier) / multiplier

Могу ли я спросить, как наиболее эффективно работать с каждым элементом в каждом объекте? В этом простом примере я мог бы написать цикл для каждого из 3 объектов, например:

for i in np.range(len(a)):
    a[i] = round_down(a[i], decimals=1)

Однако в моей работе у меня есть еще много списков различной длины, и я действительно не хочузакодируйте их один за другим. Есть ли способ перебрать список объектов? или обрабатывать их параллельно?

Ответы [ 2 ]

0 голосов
/ 23 декабря 2019
combine_array = [a, b, c]
for p in combine_array:
    for i in np.range(len(p)):
        p[i] = round_down(p[i], decimals=1)
0 голосов
/ 23 декабря 2019

Так же, как вы используете цикл for, чтобы избежать кодирования для каждого отдельного элемента, используйте цикл for для перебора всех ваших списков:

my_lists = [a, b, c]
for l in my_lists:
    for i in np.range(len(l)):
        l[i] = round_down(l[i], decimals=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...