我需要将列表列表转换为整数列表。
来自:
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)
你们这些人很快。谢谢!
答案 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
。