python列表的长度可变吗_多个可变长度元素的Python列表理解?

我正在编写将CSV转换为XML的代码。假设我有一个单子,比如:input = ['name', 'val', 0, \

'name', 'val', 1, 'tag', 'val', \

'name', 'val', 2, 'tag', 'val', 'tag', 'val', \

'name', 'val', 0]

此列表中以“name”开头的每个部分都表示一个元素,该元素具有名称、值和可选标记-值对的可变数量。在

我想把它变成:

^{pr2}$

不需要将标记-值对分离为元组,这是在单独的方法中处理的。我有一个解决办法,但不是很像Python:output=[]

cursor=0

while cursor < len(input):

name=input[cursor]

val=input[cursor+1]

ntags=int(input[cursor+2])

optslice=input[cursor+3:cursor+3+2*ntags]

cursor = cursor+3+2*ntags

print name, val, ntags, optslice, cursor

output.append([name, val, optslice])

print output

> name val 0 [] 3

> name val 1 ['tag', 'val'] 8

> name val 2 ['tag', 'val', 'tag', 'val'] 15

> name val 0 [] 18

> [['name', 'val', []], ['name', 'val', ['tag', 'val']], ['name', 'val', ['tag', 'val', 'tag', 'val']], ['name', 'val', []]]

我想我可以把它作为一个列表理解来做,但是每个元素的可变长度让我陷入了一个循环。输入是从CSV解析的,我可以更改格式以更好地适应不同的解决方案。思想?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值