将列表列表转换为整数列表

时间:2013-08-30 03:56:39

标签: python list

我需要将列表列表转换为整数列表。

来自:

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)

你们这些人很快。谢谢!

4 个答案:

答案 0 :(得分:5)

第一个问题可以通过

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

不幸的是,整数不是以0开头。没有办法做到这一点。

检查A == sorted(A)是否是完美的方法。

答案 1 :(得分:4)

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

如果您想要一个不通过字符串的解决方案。

答案 2 :(得分:1)

对于问题1,可能是Python 3转换,但普通.join在Python 2中给我一个TypeError。尝试:

["".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

答案 3 :(得分:0)

你可以这样做:

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

保留零并得到:

[11234, 13717, 10567, 19456]

但是你需要摆脱最左边的1