gpt4 book ai didi

python - 如何在 python 中将第二行连接到第一行的末尾?

转载 作者:太空宇宙 更新时间:2023-11-04 01:06:22 25 4
gpt4 key购买 nike

我尝试阅读如下行:

A:129    Tyr -P-   9    -          -               -               10xR,4xG,3xD,3xK,2xP,2xV,2xY,1xE,1xI,1xL,1xM,1xN,1
xQ,1xT
A:181 Ser -P- 8 - - - 9xR,9xS,8xG,4xT,3xD,3xL,3xQ,3xV,2xK,2xM,1xA,1xF,1x
H,1xY
A:50 His --- 9 - - - 17xL,9xA,4xK,3xI,3xR,3xV,2xN,2xS,1xC,1xE,1xH,1xQ,1
xT

其中每条偶数行都是奇数行的延续,但被 "\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s"所以我想将那些 '\n\s(n)' 替换为 '' 并返回到 ODD 行的末尾。

例如:

A:181    Ser -P-   8    -          -               -               9xR,9xS,8xG,4xT,3xD,3xL,3xQ,3xV,2xK,2xM,1xA,1xF,1x
H,1xY

A:181    Ser -P-   8    -          -               -               9xR,9xS,8xG,4xT,3xD,3xL,3xQ,3xV,2xK,2xM,1xA,1xF,1xH,1xY

代码:

import os
import sys
import re

lines=["A:129 Tyr -P- 9 - - - 10xR,4xG,3xD,3xK,2xP,2xV,2xY,1xE,1xI,1xL,1xM,1xN,1"," xQ,1xT","A:181 Ser -P- 8 - - - 9xR,9xS,8xG,4xT,3xD,3xL,3xQ,3xV,2xK,2xM,1xA,1xF,1x"," H,1xY","A:50 His --- 9 - - - 17xL,9xA,4xK,3xI,3xR,3xV,2xN,2xS,1xC,1xE,1xH,1xQ,1"," xT"]

for i in lines:
print i.replace(" ","")

在这里,我只是用空格替换了空格,但我不知道如何将这些替换的偶数行连接到奇数行的末尾。

有人可以帮我做同样的事情吗。

在此先感谢您。

大家好,首先非常感谢您的友好回复。我尝试了所有方法,但下面的方法是正确的:

WILD= open("INPUT.txt", 'r')
merged = []
for line in WILD:
if line.startswith(" "):
merged[-1] += line.strip()
else:
merged.append(line.replace("\n",""))

输出:

A:129    Tyr -P-   9    -          -               -               10xR,4xG,3xD,3xK,2xP,2xV,2xY,1xE,1xI,1xL,1xM,1xN,1xQ,1xT
A:181 Ser -P- 8 - - - 9xR,9xS,8xG,4xT,3xD,3xL,3xQ,3xV,2xK,2xM,1xA,1xF,1xH,1xY
A:50 His --- 9 - - - 17xL,9xA,4xK,3xI,3xR,3xV,2xN,2xS,1xC,1xE,1xH,1xQ,1xT

最佳答案

代替 replace 语句,您可以只使用 str.strip去除字符串开头或结尾的空格。此外,您可以使用 zip 来迭代成对的行。

for x, y in zip(l[::2],l[1::2]):
print "".join([x, y.strip()])

如果这是一个迭代器,如文件,则使用 next 获取下一行。

for x in iterator:
y = next(iterator)
print "".join([x, y.strip()])

两种方式,所有偶数行 (0, 2, ...) 转到 x 而所有奇数行 (1, 3, ...) 转到 y。当然,这是假设列表/文件中的所有条目恰好跨越两行。

如果它们可以跨越任意数量的行(仅一、两或五行),那么这将变得更加复杂。在这种情况下,您可以尝试这样的操作:

merged = []
for line in lines:
if line.startswith(" "):
merged[-1] += line.strip()
else:
merged.append(line)

注意:如果这些确实是文件中的行,您可能必须将 strip 应用于所有行,即 x.strip()merged.append(line.strip()),因为每一行都将由 \n 终止,您可能希望摆脱它。

关于python - 如何在 python 中将第二行连接到第一行的末尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30170371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com