Копирование определенного количества элементов из одного списка в другой в Python - PullRequest
0 голосов
/ 06 ноября 2019

Я хочу скопировать первые n нет элементов списка в другой список и рассчитать стандартное отклонение нового списка

Я пробовал new_list.append (old_list), но не могу выполнитьматематические операции в новом списке. Мне нужно выполнить определенные операции, и мне не разрешено использовать статическую библиотеку

def sample_stdev(lst):
    sum,new_sum = 0,0
    new_list = []
    i,j = 0,0

    for x in range(20):         #Copy the first 20 elements
        new_list.append(lst)
        new_sum+= new_list  # didn't work even with new_sum+=new_list[x]
        j += 1
    new_mean = new_sum/j
    for row in new_list:
        i=i+1
        error = row - new_mean
        error_sq = error*error
        sum = sum + error_sq
    b=sum/(i-1)
    std = math.sqrt(b)
    return std

Error: 
new_sum+= new_list[x]
TypeError: unsupported operand type(s) for +=: 'int' and 'list'

1 Ответ

1 голос
/ 06 ноября 2019

Этот код:

for x in range(20):         #Copy the first 20 elements
    new_list.append(lst)

делает не то, что говорится в комментарии;он добавляет все значения от lst до new_list 20 раз, превращая его в список списков (но все указатели на один и тот же список).

Если вы просто хотите получить первые 20 элементов lstВы можете использовать синтаксис нарезки массива:

new_list = lst[0:20]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...