Как перевести список чисел в число?

Дан список: [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
Необходимый вывод: 1234567890


Ответы (4 шт):

Автор решения: Fat-Zer

Можно преобразовать список чисел в список строк с помощью map/str, а затем подать объект на вход join через пустую строку, а затем, по необходимости, снова перевести в число:

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
int(''.join(map(str, lst)))
→ Ссылка
Автор решения: Михаил Муругов

Быстрее:

from functools import reduce

a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
result = reduce(lambda x, y: x * 10 + y, a)

Проще:

a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
result = int(''.join(map(str, a)))
→ Ссылка
Автор решения: Danis

Можно так:

print(str(x)[1:-1].replace(", ", ""))

str(x) - превращаем в строку
[1:-1] - убираем скобки
replace(", ", "") - убираем все ", "

→ Ссылка
Автор решения: Zhihar

решения без привлечения внешних библиотек:

через сумму

способ 1:

res = sum(10**obj[0] * obj[1] for obj in enumerate(reversed(arr)))

способ 2:

res = sum(10**obj[0] * obj[1] for obj in enumerate(arr[::-1]))

способ 3:

res = sum(10**(len(arr) - obj[0] - 1) * obj[1] for obj in enumerate(arr))

через преобразование строк:

способ 4:

res = int(''.join(map(str, arr)))

способ 5:

res = int(''.join(str(i) for i in arr))

через решение в лоб (по сути та же сумма, но без функции sum)

способ 6:

res = 0
for i in arr:
  res = res * 10 + i

извращённый способ по формированию строки без join:

способ 7:

res = int(str(arr).replace(' ', '').replace('[', '').replace(']', '').replace(',', ''))

продолжаем извращения с микроскопом и гвоздями - предыдущий способ, но более совершенный:

способ 8:

res = int(str(arr).translate(str.maketrans('', '', ' ,[]')))
→ Ссылка