【发布时间】:2016-02-04 22:52:28
【问题描述】:
我的代码需要这样的东西: Split python string every nth character?
然而,就我而言; n 是嵌套列表中的数字,我要拆分的字符串也在嵌套列表中。
myList = [["'hello''my name'"],["'is Michael'"],["'and'", "'I like''apples'"]]
nList = [[7,9],[12],[5,8,8]
我想得到这样的东西:
myNewList = [["'hello'","'my name'"],["'is Michael'"],["'and'", "'I like'","'apples"]]
即我想按照nList中的数字对应的长度分割字符串。
我尝试使用与上面发布的链接类似的解决方案:
我的尝试:
myNewList = [myList[sum(nList[:i]):sum(nList[:i+1])] for i in range(len(nList))]
但这并不符合我的情况。
编辑:
请注意,我不想在每次引用后使用split,但是可以将其作为解决方案提供。数字各不相同,这是一个简化的场景,我用来暗示我的 XML 数据处理/写入情况。
【问题讨论】:
-
你能解释一下
nList中值的含义吗?对于给定的示例,它们是否正确? -
这背后的更高目的是什么?由于所有所需的短语都已由单引号分隔,因此我看不出将长度放在另一个列表中的目的。只需在原始条目上使用 split("''")。
-
@Prune 当然,这是简化的场景。但是,如果您必须知道,我正在从 XML 文档中的元素中提取文本并将它们附加到嵌套列表中(每个嵌套代表每个“步骤”,或 XML 中的块)。文本必须由一定数量的字符分隔,并且这些数字是从同一个 XML 块中的另一个元素中提取的(因此这些数字也是嵌套的)。
-
@Prune 在
''上拆分将为您提供交替的元素'作为连续元素的前缀和后缀。一个正则表达式可能是一个更好的解决方案,而不是长度列表 -
我需要澄清一下。 myList 的最后一个元素有两个元素而不是一个。然而,nList 的最后一个元素有一个简单的三个整数序列。结构不直接适用吗?
标签: python string list split numbers