如何连接以字母开头的行?

2024-05-23 10:58:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将文本文件中的行连接到两个列表中。第一个列表将包含以大写字母开头的行,第二个列表将包含以“\”开头的行。例如:

_CAA35997.1未命名蛋白质产品[牛-金牛] mrtpmlallalatlclagradakpgdaesgkgaafvskegsevkrlrryldhwlgapappypdplepk RevcelNPDCDeladhigfQeyrrfyGPV

_CAA42669.1β-2-糖蛋白I,部分[牛-金牛] PALVLLGFLCHVAIAGRTCPKPDELPFSTVVPLKRTYEPGEQIVFSCQPGYVSRGGIRRFCPLTGLWP INTLKCMPRvCPAgilengTvrytFeypantisfschtgfylkgassakcteegkwspdlpvcapitcp

第一个列表=['mrtpmlallalatlclagradakpgdaesgkgafvskegsevkrlrryldhwlgapappypdplepk RevcellNPDCDelahigfqeyrrfyGPV',“pallllllgflchvaiagrtcpkpdelpfstvvplpkrtyepqivfscqpGyvsrgirftcpltglwPintlkCpRvCpCpCpFagilengTvRyTvRyTfyTfyPvCpCpCpCpKgPassakTegKwPdVpCpCpCpCpCpCpCpCpCpCp

第二个列表=[“CAA35997.1”,“CAA42669.1”]

我尝试了以下似乎不起作用的方法。我遇到了一个问题,即每一行都作为新条目存储在第一个列表中,而不是将这些行连接到一个条目中:

for i in seq.text:
  if (i=='_'):
    second_list.append(i)
  else:
    first_list.append(i)

Tags: 列表产品条目蛋白质大写字母list文本文件append
2条回答
import re
a_file = open("your_path/test.txt", "r")
list1 = []
list2 = []
for line in a_file:
    if not line.strip(): continue  # skip the empty line
    stripped_line = line.strip()
    line_list = ''.join(stripped_line)
    # To consider '_' in the first list
    #x = re.findall(r"\b_\w+", line_list)
    if (line_list.isupper()): # if (x):
        list1.append(line_list)`
    else:
        list2.append(line_list)

最简单的方法就是执行当前正在执行的操作,然后执行str.join()以立即“连接”整个列表,顺序如下:

for i in seq.text:
  if i.startswith('_'):
    second_list.append(i)
    # to more closely resemble the output you put in your question,
    # you might want to only append the part up to the first whitespace:
    # second_list.append(i.split()[0])
  else:
    first_list.append(i)

first_string = ''.join(first_list)
second_string = ''.join(second_list)

使用空字符串作为分隔符意味着它们直接连接在一起,中间没有任何内容。您还可以使用其他任何东西作为分隔符—逗号','、空格' '、换行符'\n',或任何组合,具体取决于所需的输出

相关问题 更多 >

    热门问题