Python: список для ints для одного номера?

Скажем, у меня есть несколько списков, если ints:

x = [['48', '5', '0'], ['77', '56', '0'], ['23', '76', '34', '0']] 

Я хочу, чтобы этот список был преобразован в один номер, но единственный тип номера по-прежнему является целым числом, то есть:

 4850775602376340 

Я использовал этот код для выполнения этого процесса:

 num = int(''.join(map(str,x))) 

но я продолжаю получать ошибку значения.

Также, если в моем списке содержались отрицательные целые числа, как бы преобразовать их в абсолютное значение? Затем преобразуйте их в один номер?

x2 = [['48', '-5', '0'], ['77', '56', '0'], ['23', '76', '-34', '0'] ]

x2 = 4850775602376340

Заранее спасибо.

7 Solutions collect form web for “Python: список для ints для одного номера?”

Его список списков, поэтому

 num = int(''.join(''.join(l) for l in lists)) 

или

 def flatten( nested ): for inner in nested: for x in inner: yield x num = ''.join(flatten(lists)) 
 >>> int(''.join(reduce(lambda a, b: a + b, x))) 4850775602376340 

Я бы использовал itertools.chain.from_iterable для этого (новый в python 2.6)

Пример кода:

 import itertools x = [['48', '5', '0'], ['77', '56', '0'], ['23', '76', '34', '0']] print int(''.join(itertools.chain.from_iterable(x))) 
 >>> int(''.join(j for i in x for j in i)) 4850775602376340 
 >>> x = [['48', '5', '0'], ['77', '56', '0'], ['23', '76', '34', '0']] >>> int(''.join([''.join(i) for i in x ] )) 4850775602376340 

Достаточно хороших ответов уже … просто хотелось добавить обработку неограниченного гнездования:

 def flatten(obj): if not isinstance(obj, list): return obj else: return ''.join([flatten(x) for x in obj]) >>> x = [['48', '5', '0'], ['77', '56', '0'], ['23', '76', '34', '0']] >>> flatten(x) '4850775602376340' >>> x = [['48', '5', '0'], ['77', '56', '0'], [['23','123'], '76', '34', '0']] >>> flatten(x) '4850775602312376340' 

Проще говоря:

  1. сглаживание списка

     [e for e in (itertools.chain(*x))] 
  2. удаление отрицательного знака

     e.replace('-','') 
  3. объединение чисел в список в строку и превращение его в число

     int(''.join(x)) 

все вместе

 x2 = int(''.join([e.replace('-','') for e in (itertools.chain(*x))])) 
  • Преобразование столбца dataframe в список списков и преобразование обратно в dataframe, при сохранении идентификационной ассоциации
  • Как проверить список, содержащийся в другом списке, без цикла?
  • list () использует больше памяти, чем понимание списков
  • Проверьте наличие разреженного списка в Python
  • эффективность конкатенации списка питов
  • Как читать входной файл в Python?
  • Список чередования с фиксированным элементом
  • Определите, присутствуют ли все элементы в списке и в том же порядке в другом списке
  • питон; изменение списка внутри функции
  • Максимальное значение в списке списков кортежей
  • Python - удаление перекрывающихся списков
  •  
    Interesting Posts for Van-Lav

    Повторите кортеж внутри кортежа

    Как получить доступ к Scikit Узнать вложенные оценки перекрестной проверки

    python.array против numpy.array

    Как распечатать дату и время Python в локальном часовом поясе?

    Pandas: зачем нужны двойные скобки для выбора столбца после булевской индексации?

    socket.getfqdn () и socket.gethostname () предоставляют разные IP-адреса при использовании socket.gethostname

    Распределение Paramiko и Pseudo-tty

    Недопустимое исключение аргумента в socket.accept (), если я перезапускаю сразу после предыдущего запуска quit

    Мне не нравятся функции Python, которые принимают два или более итераций. Это хорошая идея?

    Какие функции являются повторителями в Python для обработки библиотеки сигналов

    Заполнение пробелов данных со средним объемом данных из смежных дней

    копировать данные из csv в postgresql с помощью python

    правильный и эффективный способ сглаживания массива в numpy в python?

    Как зарегистрировать нового клиента в API Instagram

    Почему текстовый ввод-вывод должен быть буферизирован в python 3?

    Python - лучший язык программирования в мире.