Сделайте каждые четыре элемента в одно число (элемент) - python - PullRequest
0 голосов
/ 13 ноября 2018

Так как к названию описания?

Итак, список:

l=[1,2,3,4,5,6,7,8]

Желаемый вывод:

[1234,5678]

Так что объединяйте каждые четыре пачки элементов!

Я думаю о понимании списка, но это не очень хорошо (это ниже моего вопроса)

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Предположим, длина l кратна 4, и каждый элемент l является целым числом (от 1 до 9)

Вот еще один вариант без использования строки.

[1000*l[4*i]+100*l[4*i+1]+10*l[4*i+2]+l[4*i+3] for i in range(len(l)//4)]
0 голосов
/ 13 ноября 2018

Вы можете получить элементы из индекса среза диапазона, мы можем сделать это из-за аргумента step (последний), который превращает эту последовательность в целое число (число).

Примечание: я упорядочиваю их по рангу, поэтому (лучший сверху и худший снизу)

Вариант 1: list comprehension:

>>> [int(''.join(map(str,l[i:i+4]))) for i in range(0,len(l),4)]
[1234, 5678]
>>>

Вариант 2: map:

>>> list(map(lambda i: int(''.join(map(str,l[i:i+4]))),range(0,len(l),4)))
[1234, 5678]
>>>  
...