как разделить список на вложенный список со средним значением всех элементов в списке? - PullRequest
0 голосов
/ 13 марта 2020

Мне нужно разделить список на вложенный список со средним значением.

 a =[ 0.6140781, 0.61407846, 0.6930427, 0.6930429, 0.7213439, 0.72134393, 0.7333274, 0.73332757]

среднее значение по списку составляет 0,05515

, если разница между двумя элементами не превышает 0,5515 Мне нужно объединить элементы в списке, и если следующий элемент в списке превышает 0.05515, тогда сформируйте другой список в python

желаемый результат:

output : [[0.6140781, 0.61407846],[0.6930427, 0.69460429],[0.7213439, 0.72334393], [0.7333274, 0.73532757]]

Любые предложения будут полезно!

1 Ответ

1 голос
/ 13 марта 2020

Поскольку список отсортирован, вы можете выполнить итерацию, если текущий элемент больше целевого значения, добавить новый список к выводу и добавить текущий элемент в последний добавленный список.

Ваш вывод не имеет смысла со средним числом, которое вы указали, потому что 0.7213439 - 0.69460429 не больше, чем 0,05515, равно как и 0.7333274 - 0.72334393, поэтому я использовал 0,01 вместо этого.

a = [0.6140781, 0.61407846, 0.6930427, 0.6930429, 0.7213439, 0.72134393, 0.7333274, 0.73332757]

output = [a[:1]]

for i in range(1, len(a)):
    if a[i] - a[i-1] > 0.01:
        output.append([])
    output[-1].append(a[i])

print(output)
...