Как перевести список чисел в число?
Дан список: [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
Необходимый вывод: 1234567890
Ответы (4 шт):
Можно преобразовать список чисел в список строк с помощью 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)))
Можно так:
print(str(x)[1:-1].replace(", ", ""))
str(x) - превращаем в строку
[1:-1] - убираем скобки
replace(", ", "") - убираем все ", "
решения без привлечения внешних библиотек:
через сумму
способ 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('', '', ' ,[]')))