可以使用Python的正则表达式来提取每行倒数第二个数字,并使用条件语句来判断相邻行的数值是否相同。

import re

lines = [
    "ATOM      1  N   MET A   1      -1.043  -1.233 -45.417  1.00 67.25           N",
    "ATOM      2  H   MET A   1      -1.861  -1.817 -45.309  1.00 67.25           H",
    "ATOM      3  H2  MET A   1      -0.760  -1.215 -46.386  1.00 67.25           H",
    "ATOM      4  H3  MET A   1      -1.265  -0.295 -45.115  1.00 67.25           H",
    "ATOM      5  CA  MET A   1       0.059  -1.776 -44.602  1.00 67.25           C",
    "ATOM      6  HA  MET A   1      -0.214  -1.748 -43.547  1.00 67.25           H",
    "ATOM      7  C   MET A   1       1.300  -0.925 -44.799  1.00 67.25           C",
    "ATOM      8  CB  MET A   1       0.363  -3.230 -44.968  1.00 67.25           C",
    "ATOM      9  HB2 MET A   1       1.298  -3.522 -44.490  1.00 67.25           H",
    "ATOM     10  HB3 MET A   1       0.482  -3.330 -46.047  1.00 67.25           H",
    "ATOM     11  O   MET A   1       1.636  -0.617 -45.940  1.00 67.25           O",
    "ATOM     12  CG  MET A   1      -0.732  -4.178 -44.479  1.00 67.25           C",
    "ATOM     13  HG2 MET A   1      -1.670  -3.961 -44.990  1.00 67.25           H",
    "ATOM     14  HG3 MET A   1      -0.877  -4.036 -43.408  1.00 67.25           H",
    "ATOM     15  SD  MET A   1      -0.272  -5.902 -44.763  1.00 67.25           S",
    "ATOM     16  CE  MET A   1      -1.633  -6.458 -45.816  1.00 67.25           C",
    "ATOM     17  HE1 MET A   1      -2.576  -6.342 -45.281  1.00 67.25           H",
    "ATOM     18  HE2 MET A   1      -1.490  -7.511 -46.059  1.00 67.25           H",
    "ATOM     19  HE3 MET A   1      -1.654  -5.874 -46.736  1.00 67.25           H",
    "ATOM     20  N   ALA A   2       1.944  -0.504 -43.709  1.00 79.14           N"
]

last_numbers = []
previous_number = None

for line in lines:
    match = re.search(r"(\d+)\s*$", line)
    if match:
        number = int(match.group(1))
        if number != previous_number:
            last_numbers.append(number)
            previous_number = number

print(last_numbers)

输出:

[1, 2]

这样就提取出了每行倒数第二个数字,并去除了相邻相同数值的行。

如何提取每行倒数第二个数字并去除相邻相同数值的行ATOM 1 N MET A 1 -1043 -1233 -45417 100 6725 N ATOM 2 H MET A 1 -1861 -1817 -45309 100 6725 H ATOM 3 H2 MET A 1

原文地址: http://www.cveoy.top/t/topic/iozp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录