Преобразование списка списков в список целых чисел

Мне нужно преобразовать список списков в список целых чисел.

из:

L1 = [[1, 2, 3, 4], [3, 7, 1, 7], [0, 5, 6, 7], [9, 4, 5, 6]] 

чтобы:

 L2 = [1234, 3717, 0567, 9456] 

Как я могу заставить python распознавать целое число, начиная с 0? Как и случай L2[2]

Другой вопрос: как я могу проверить, упорядочены ли элементы в списке?

 A = [1, 2, 6, 9] ---->True 

Помимо этого:

 A == sorted(A) 

Вы, ребята, БЫСТРО. Благодаря!

Первый вопрос может быть сделан

 L = [int("".join([str(y) for y in x])) for x in L] 

К сожалению, целые числа не начинаются с 0. Нет никакого способа сделать это.

Проверка, если A == sorted(A) – прекрасный способ сделать это.

 L2 = [reduce(lambda x,y : 10 * x + y, l) for l in L1] 

Если вы хотите решение, которое не проходит через строки.

На вопрос 1, возможно, Python 3 конвертирует, но простой .join дает мне TypeError в Python 2. Попробуйте:

 ["".join(str(d) for d in x) for x in L] 

… для строкового представления или

 [int("".join(str(d) for d in x)) for x in L] 

(Строковое представление – единственный способ сохранить ведущие нули, за исключением форматированного вывода … и тогда это просто преобразование строк на пути к выходному файлу / строке.)

Для вопроса 2: all(A[i-1] < A[i] for i in range(1, len(A)))

 >>> A = [1, 2, 6, 9] >>> all(A[i-1] < A[i] for i in range(1, len(A))) True 

Ты можешь сделать:

 L2 = [ int("1" + "".join(str(l) for l in ll1)) for ll1 in L1 ] 

сохранить нули и получить:

 [11234, 13717, 10567, 19456] 

но тогда вам нужно избавиться от самых левых 1 с.