首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在两个索引python之间迭代连接字符串

在两个索引python之间迭代连接字符串
EN

Stack Overflow用户
提问于 2018-08-02 03:56:18
回答 3查看 434关注 0票数 1

我有一个测试文件,格式如下:

代码语言:javascript
复制
one
two
three
four
=
five
six
seven
eight
=
nine
ten
one
two
=

我正在编写一段python代码来创建一个列表,文本中的每个元素都是列表中的一项:

代码语言:javascript
复制
dump = sys.argv[1]
lines = []
with open(dump) as f:
    for line in f:
        x = line.strip()
        lines.append(x)
print(lines)

线路列表=

代码语言:javascript
复制
['one', 'two', 'three', 'four', '=', 'five', 'six', 'seven', 'eight', '=', 'nine', 'ten', 'one', 'two', '=']

然后,我获得等号的索引,以便在以后尝试使用这些索引来创建一个新的列表,并组合字符串:

代码语言:javascript
复制
equals_indexes = [i for i, x in enumerate(lines) if x == '=']

equals_indexes列表:

代码语言:javascript
复制
[4, 9, 14]

直到这一点,我都很好。现在,我想将第一个索引之前的字符串一、二、三、四连接为new_list元素1。我想连接等号1和2之间的下一组字符串,以及等号2和3之间的下一组字符串,以产生以下结果:

代码语言:javascript
复制
[[one two three four], [five six seven eight], [nine ten one two]]

我尝试通过迭代equals索引列表,然后迭代列表行来做到这一点:

代码语言:javascript
复制
for i in equals_indexes:
    sequences = ""
    for x,y in enumerate(lines):
        if x < i:
            sequences = ' '.join(lines[x:i])
            groups.append(sequences)
print(groups)

这会产生以下结果:

代码语言:javascript
复制
['one two three four', 'two three four', 'three four', 'four', 'one two three four = five six seven eight', 'two three four = five six seven eight', ....]

我理解为什么会发生这种情况,因为在x的每次迭代中,它都会检查它是否小于i,如果是,则将x处的每个字符串附加到字符串"sequences“中。我之所以这样做,是因为我有一个大文件,其中包含与程序的一次迭代相对应的巨大文本块。程序的迭代1和迭代2之间的分隔符是一行中的单个'=‘。这样,在我能够用等号拆分列表元素之后,我就可以解析它们。任何帮助都是最好的!

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51641361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档