首页 新闻 会员 周边 捐助

【python】请问如何按顺序排列组合输出字符串?

0
悬赏园豆:15 [已解决问题] 解决于 2018-09-17 19:56

有下面1个列表,列表中又嵌套不同长度的列表,想要输出的结果是,把strLst[0][0]到strLst[4][1]按顺序全部遍历一遍,然后把元素拼接在一起输出。
请问有什么办法可以实现吗?先谢谢各位大神了!
strLst = [['cmd1'],['opt1-1','opt1-2',''],['opt1-3'],['opt1-4',''],['opt1-5','']]

输出结果:
cmd1 opt1-1 opt1-3 opt1-4 opt1-5
cmd1 opt1-1 opt1-3 opt1-4
cmd1 opt1-1 opt1-3 opt1-5
cmd1 opt1-1 opt1-3
cmd1 opt1-2 opt1-3 opt1-4 opt1-5
cmd1 opt1-2 opt1-3 opt1-4
cmd1 opt1-2 opt1-3 opt1-5
cmd1 opt1-2 opt1-3
cmd1 opt1-3 opt1-4 opt1-5
cmd1 opt1-3 opt1-4
cmd1 opt1-3 opt1-5
cmd1 opt1-3

芽衣的主页 芽衣 | 菜鸟二级 | 园豆:384
提问于:2018-09-16 18:47
< >
分享
最佳答案
0

这是结果和代码,由于用博客园时间短不知道怎么在评论里面加代码,直接复制上去格式不太对,所以就放的图片。我也是刚刚学Python不是很清楚python中的数据结构的形式是怎么样的,写的有点复杂,如果你数据结构学好的话可以更加简单,希望能帮到你!
下面是另外一个我注释的执行结果,虽然排出来了但是效果不太好

下面是源码,就是复制上来时格式有问题:
strLst = [['cmd1'],['opt1-1','opt1-2',''],['opt1-3'],['opt1-4',''],['opt1-5','']]

把strLst先分割出来

a0 = strLst[0]
a1 = strLst[1]
a2 = strLst[2]
a3 = strLst[3]
a4 = strLst[4]

计算出每一个分割出来的变量中有几个字符串

L0 = len(a0)
L1 = len(a1)
L2 = len(a2)
L3 = len(a3)
L4 = len(a4)
n0 = 0
n1 = 0
n2 = 0
n3 = 0
n4 = 0

计算出要循环的次数

sum = L0 * L1 * L2 * L3 * L4
count = 0
while count < sum:
"""=========运用满位进一的办法========="""
if n4 >= L4:
n4 = 0
n3 += 1
if n3 >= L3:
n3 = 0
n2 += 1
if n2 >= L2:
n2 = 0
n1 += 1
if n1 >= L1:
n1 = 0
n0 += 1
if n0 >= L0:
n0 = 0
"""===================================="""
"""==========输出段===================="""
needoutput = ''
if a0[n0] != '':
needoutput = needoutput + a0[n0] + '\t'
else:
needoutput = needoutput + a0[n0]
##########################
if a1[n1] != '':
needoutput = needoutput + a1[n1] + '\t'
else:
needoutput = needoutput + a1[n1]
###########################
if a2[n2] != '':
needoutput = needoutput + a2[n2] + '\t'
else:
needoutput = needoutput + a2[n2]
###########################
if a3[n3] != '':
needoutput = needoutput + a3[n3] + '\t'
else:
needoutput = needoutput + a3[n3]
###########################
if a4[n4] != '':
needoutput = needoutput + a4[n4]
needoutput = needoutput.expandtabs(7) #帮忙分割
print(needoutput)
"""===================================="""
"""
上面的输出段可以直接换成
print(a0[n0],a1[n1],a2[n2],a3[n3],a4[n4])
但是效果并不好,对的不是很齐
"""
n4 += 1
count += 1

收获园豆:15
开心的小草 | 菜鸟二级 |园豆:243 | 2018-09-17 19:26

哇~!从来没有人这么认真回答过我的问题,直接贴代码还截图,好感动哦!
我刚才运行了一下代码,出来一样的答案,真的很感谢你!!!

芽衣 | 园豆:384 (菜鸟二级) | 2018-09-17 19:58

@芽衣: 一起学习,正好我也在自学Python,帮你也可以把学到的东西灵活运用。说不定以后有问题我还要请教你

开心的小草 | 园豆:243 (菜鸟二级) | 2018-09-17 20:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册