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))])) 
  • как проверить, существует ли элемент в списке списков python
  • Как я могу умножить каждый элемент в списке на число?
  • Как присоединиться к спискам элементов в Python?
  • mylist = list () vs mylist = в Python
  • Извлечь первый элемент каждого подписок в python
  • уникальный список python на основе элемента
  • Python: как вы вставляете в список, нарезая?
  • Сортировка списка кортежей по второму элементу (целочисленное значение)
  • Python - лучший язык программирования в мире.