удаление кортежа в списке и последующее присвоение среднего значения удаленному кортежу - PullRequest
0 голосов
/ 28 января 2019

Это список:

trandom= [(4, 1), (3, 2), (1, 0), (2, 1)]

for indx, tup in enumerate(trandom):
print("original list", trandom)
#remove the tuple that computes the average
removedfromList= trandom.pop(indx)
#updatedList=(trandom, average[indx])
print(trandom+[average[indx]])
updatedList=trandom+[average[indx]]
print(list(chain(*(i if isinstance(i, tuple) else (i,) for i in updatedList))))
break

Результаты в

 ('original list', [(4, 1), (3, 2), (1, 0), (2, 1)])
[(3, 2), (1, 0), (2, 1), 2.5]

До этого момента все нормально, потому что я смог добавить среднее значение как последний элемент кортежа.

Моя цель здесь сейчас состоит в том, чтобы назначить среднее значение (0,5) в этом случае для первого кортежа из исходного списка (1,0) и сгладить кортеж в список, а затем вычислить его среднее и стандартное отклонение.Я должен сделать этот процесс случайным образом.

1 Ответ

0 голосов
/ 28 января 2019

Существует много путаницы в отношении того, что вы спрашиваете.

После исправления синтаксических ошибок ваш код выводит следующее:

original list [(4, 1), (3, 2), (1, 0), (2, 1)]
[(3, 2), (1, 0), (2, 1), 0.0]
[3, 2, 1, 0, 2, 1, 0.0]

Следующий код дает вам вывод, которыйВы описали:

trandom= [(4, 1), (3, 2), (1, 0), (2, 1)]

#remove for loop because you are breaking out of it after 1 iteration
print(("original list", trandom)) #make the output a tuple
updatedList=(trandom+[np.average([i[0] for i in trandom])])
removedfromList= updatedList.pop(0) #remove the first from updated
print (updatedList)
#next line was not in your output
#print(list(it.chain(*(i if isinstance(i, tuple) else (i,) for i in updatedList))))

Что касается вашей второй части, я не уверен, что вы ищете.(1,0), конечно, не первый элемент в первоначальном списке.Пожалуйста, уточните, что вы пытаетесь сделать.

...