Добавление одинаковых значений в массив - PullRequest
0 голосов
/ 19 октября 2018

У меня есть этот массив:

            countOverlaps = [numA, numB, numC, numD, numE, numF, numG, numH, numI, numJ, numK, numL]

, а затем я уплотняю этот массив, избавляясь от всех 0 значений:

            countOverlaps = [x for x in countOverlaps if x != 0]

Когда я делаю это, я получаю выводэто: [2, 1, 3, 2, 3, 1, 1]

Что и нужно, так что это имеет смысл.Теперь я хочу добавить значения в массив, чтобы каждое число добавлялось в массив столько раз, сколько оно появляется.

Как это:

Оригинал: [2, 1, 3, 2, 3, 1, 1]

Что я хочу: [2,2,1,3, 3,3,2,2,3,3,3,1,1]

Возможно ли что-то подобное в python?

Спасибо

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Это может быть сделано с использованием понимания списка.Итак, у вас было:

countOverlaps = [10,25,11,0,10,6,9,0,12,6,0,6,6,11,18]
countOverlaps = [x for x in countOverlaps if x != 0]

Это дает нам все номера, отличные от 0.Затем мы можем сделать то, что вы хотите, с помощью следующего кода:

mylist = [number for number in list(set(countOverlaps)) for i in range(0, countOverlaps.count(number)) ]

Это превращает «mylist» в следующий вывод, который вам нужен:

[6, 6, 6, 6, 9, 10, 10, 11, 11, 12, 18, 25]
0 голосов
/ 19 октября 2018

Обновлено

Пожалуйста, проверьте ниже:

>>> a = [2, 1, 3, 2, 3, 1, 1]
>>> [b for b in a for _ in range(b)]
[2, 2, 1, 3, 3, 3, 2, 2, 3, 3, 3, 1, 1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...