拆分单个列表元素

时间:2017-04-28 10:31:18

标签: python python-2.7

我有一个我想要操作的数据列表。

initial_list = [333322222111111, 555000033311123, 666333312466332]

我想将每个元素放入一个新列表,然后将它们进一步拆分,这样我的新列表就是:

new_list = [[333,22222111111], [555, 000033311123], [666,333312466332]]

我做了以下事情:

new_list = [[] for i in range(0, len(initial_list))]

这给了我:new_list = [[], [], []]

for i in range(0, len(new_list)):
    new_list[i].append(initial_list[i])

这给了我

[[333322222111111], [555000033311123], [666333312466332]]

我现在卡住了如何拆分每个嵌套列表... .split方法只适用于字符串..每个列表中的前3个值需要被切断。理想情况下我甚至想要拆分其他部分进一步均匀分块

任何关于前进方向的建议都会很棒。

4 个答案:

答案 0 :(得分:3)

假设您的所有值都具有相同的长度。以下代码将输出您想要的内容。

>>> a = [333322222111111, 555000033311123, 666333312466332]
>>> [ [i/10**12, i%10**12] for i in a]
[[333, 322222111111], [555, 33311123], [666, 333312466332]]

有关答案的一些资源:List Comprehensions

答案 1 :(得分:0)

尝试这样,只需使用字符串切片

In [18]: print [map(int,[i[:3],i[3:]]) for i in map(str,initial_list)]

[[333, 322222111111], [555, 33311123], [666, 333312466332]]

答案 2 :(得分:0)

initial_list = [333322222111111, 555000033311123, 666333312466332]
new_list =[]
for i in initial_list:
    i=str(i)
    new_list.append([int(i[0:3]),int(i[3:])])
print new_list

输出:

[[333, 322222111111], [555, 33311123], [666, 333312466332]]

根据您的怀疑(评论部分)获得以下新格式的输出:

output: [[333, 3222, 2211, 1111], [555, 0, 3331, 1123], [666, 3333, 1246, 6332]]

以下是代码:

initial_list = [333322222111111, 555000033311123, 666333312466332]
new_list =[]
for i in initial_list:
    i=str(i)
    temp_list=[]
    temp_list.append(int(i[0:3]))
    jump=4
    for j in range(3,len(i),jump):
        temp_list.append(int(i[j:j+jump]))
    new_list.append(temp_list)
print new_list

答案 3 :(得分:0)

试试这个

 a = [333322222111111, 555000033311123, 666333312466332]
 mylst = [divmod(i,10**12) for i in a]
 print mylst 

输出:

[[333, 322222111111],  [555, 33311123],[666, 333312466332]]