![](/img/trans.png)
[英]How to split a list into sublists based on single elements of the initial list first and then contiguous portions of the list simply in python?
[英]Split single list elements
我有一个要处理的数据列表。
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个值都需要切除..理想情况下,我什至希望将其他部分拆分为甚至更大的块
任何关于该走的方向的建议都是很棒的。
假设您所有的价值都一样。 以下代码将输出您想要的内容。
>>> a = [333322222111111, 555000033311123, 666333312466332]
>>> [ [i/10**12, i%10**12] for i in a]
[[333, 322222111111], [555, 33311123], [666, 333312466332]]
有关答案的一些资源: 列表推导
尝试这样,只需使用字符串切片,
In [18]: print [map(int,[i[:3],i[3:]]) for i in map(str,initial_list)]
[[333, 322222111111], [555, 33311123], [666, 333312466332]]
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
这样尝试
a = [333322222111111, 555000033311123, 666333312466332]
mylst = [divmod(i,10**12) for i in a]
print mylst
输出:
[[333, 322222111111], [555, 33311123],[666, 333312466332]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.