我有一个这种格式的列表: -
j1=['t1', ['xl(a)', 'w(a)', 'xl(c)', 'w(c)', 'xl(b)', 'w(b)', 'ul(a)', 'ul(b)', 'ul(c)'], 't2', ['xl(b)', 'r(b)', 'w(b)', 'xl(a)', 'r(a)', 'w(a)', 'ul(b)', 'ul(a)'], 't3', ['xl(b)', 'w(b)', 'r(b)', 'ul(b)']]
我希望将其更改为
j1=[['t1', ['xl(a)', 'w(a)', 'xl(c)', 'w(c)']], ['t2', ['xl(b)', 'r(b)', 'w(b)', 'xl(a)']], ['t3', ['xl(b)', 'w(b)', 'r(b)', 'ul(b)']],['t1',['xl(b)', 'w(b)', 'ul(a)', 'ul(b)'],['t2',['r(a)', 'w(a)', 'ul(b)', 'ul(a)']],['t1',['ul(c)']]]
在t1,t2或t3的列表项目中最多有4个项目。 我如何执行转换我想实际应用循环
答案 0 :(得分:1)
这是一组简单的循环和检查:
answer=[]
head=[]
tails=[]
for x,y in enumerate(j1):
if x%2==0:
head.append(y)
else:
tails.append(y)
stillmore = True;
while stillmore == True:
for i,z in enumerate(tails):
temp = []
if len(z)>0:
temp.append(z.pop(0))
if len(z)>0:
temp.append(z.pop(0))
if len(z)>0:
temp.append(z.pop(0))
if len(z)>0:
temp.append(z.pop(0))
if len(temp)>0:
doub=[]
doub.append(head[i])
doub.append(temp)
answer.append(doub)
left=0
for z in tails:
left=left+len(z)
if left == 0:
stillmore = False
print answer
必须有其他压缩方式来表达这一点,但这是相当清楚它正在做什么。