Python-将字符串排序到列中
可能是重复的问题:
Python - 给字符串添加指定宽度
将字符串按宽度排序,比如下面的说明,我对每一列都有特定的值,但我想把这些值(生成后)以这种格式打印到一个文本文件里。
Column 1-6 Record Name
Column 7-11 Serial Number
Column 13-16 ATOM name/Type
Column 17 Alternate Location Indicator
Column 18-20 Residue Name
Column 22 Chainidentifier
Column 23-26 Residue sequence number
Column 27 Code for insertion fo residues
Column 31-38 X-value
Column 39-46 Y-value
Column 47-54 Z-Value
Column 55-60 Occupency
Column 61-66 Temperature (Default 0.0)
Column 73-76 Segment identifier
Column 77-78 Element Symbol
Column 79-80 Charge on atom
输出结果
ATOM 1 P DG S 1 3.168 -8.339 4.060 1.00 0.00 P
注意:Atom 是第1到第6列,1是第7到第11列,等等……
谢谢!
1 个回答
4
如果你想按照字符串的残留名称来排序一个列表,可以使用类似下面的代码:
list_of_strings.sort(key=lambda s: s[17:20])
想了解更多关于排序的方法,可以查看Python的排序指南。
如果你想学习更多关于字符串切片的内容,可以看看Python教程中的字符串部分。
如果你想用这种记录格式来构建字符串,可以使用固定宽度的字符串格式化。比如:
>>> '%-6s%5s%4s' % ('ATOM', 1, 'P')
'ATOM 1 P'