【发布时间】:2014-12-21 23:38:42
【问题描述】:
我需要对文本文件进行排序。该文件包含由新行 '\n' 分隔的行。
示例输入:
ATOM 1591 O5' G A 958 5.497 -3.281 3.598 1.00 99.99 O
ATOM 1592 C5' G A 958 4.345 -3.184 2.781 1.00 99.99 C
ATOM 1 P C A 924 -12.106 6.485 -14.650 1.00 99.99 P
ATOM 2 OP1 C A 924 -12.981 6.565 -15.850 1.00 99.99 O
ATOM 3 OP2 C A 924 -10.829 7.256 -14.620 1.00 99.99 O
ATOM 429 2H4 C A 947 1.295 -1.142 -0.764 1.00 99.99 H
ATOM 430 P G A 948 -2.886 -4.112 7.863 1.00 99.99 P
我想按第 6 列对它们进行排序(958、924 等)
ATOM 1 P C A 924 -12.106 6.485 -14.650 1.00 99.99 P
ATOM 2 OP1 C A 924 -12.981 6.565 -15.850 1.00 99.99 O
ATOM 3 OP2 C A 924 -10.829 7.256 -14.620 1.00 99.99 O
ATOM 429 2H4 C A 947 1.295 -1.142 -0.764 1.00 99.99 H
ATOM 430 P G A 948 -2.886 -4.112 7.863 1.00 99.99 P
ATOM 1591 O5' G A 958 5.497 -3.281 3.598 1.00 99.99 O
ATOM 1592 C5' G A 958 4.345 -3.184 2.781 1.00 99.99 C
我试过这样做:
splitted = pdb_data.splitlines()
sorted(splitted, key = lambda residue: int(residue.split()[5]))
pdb_data = '\n'.join(splitted)
pdb_data +='\nTER\n'
但它没有排序。 :-/
【问题讨论】: