文字列を特定の列で並べ替える

AirelleJab

テキストファイルを並べ替える必要があります。ファイルには、改行で区切られた行が含まれています'\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列目(によってそれらをソートしたい958924など)

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'

しかし、それはソートされていません。:-/

Martijn Pieters

ソートに間違った方法を使用しています。その並べ替えるは、次のlist.sort()方法を使用します

splitted.sort(key = lambda residue: int(residue.split()[5]))

このsorted()関数、元のリストをソートせずに新しいリストを返しますが、コードは戻り値を無視します。

sorted()backの戻り値をに割り当てることもできますが、splittedここではかなり非効率的です。

並べ替え自体は問題なく機能します。

>>> splitted = '''\
... 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   
... '''.splitlines()
>>> splitted.sort(key = lambda residue: int(residue.split()[5]))
>>> pdb_data = '\n'.join(splitted)
>>> print pdb_data
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 

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

文字列配列を特定の文字列値で並べ替える

分類Dev

Perlで特定の文字順序で文字列を並べ替える

分類Dev

特定の方法で文字列のリストを並べ替える

分類Dev

文字列を特定の値で並べ替える

分類Dev

文字列配列をCの文字列長で並べ替える

分類Dev

文字列を文字で並べ替える

分類Dev

文字列を含むJTable列を特定の順序で並べ替える

分類Dev

特定の文字の数で文字列のリストを並べ替える方法は?

分類Dev

文字列をmipsで並べ替える

分類Dev

Javaで文字列を並べ替える

分類Dev

特定の列を並べ替える

分類Dev

文字列のBsonArrayを並べ替える

分類Dev

文字の配列を並べ替える

分類Dev

文字列の特定の部分のみでテーブルを並べ替える

分類Dev

Object [] []型の配列を特定の列で並べ替える方法

分類Dev

特定の文字列値で並べ替える

分類Dev

C ++-特定の方法でベクトル内の文字列を並べ替える

分類Dev

文字列内の特定の場所でリストを並べ替える

分類Dev

列の部分文字列でPandas Dataframeを並べ替える

分類Dev

Lodashで数値文字列の配列を並べ替える

分類Dev

Forthで文字列の配列を並べ替える

分類Dev

日付文字列で辞書の配列を並べ替える

分類Dev

jQueryで整数文字列型の配列を並べ替える

分類Dev

VB.net(文字列)でDataGridViewの列を並べ替える方法

分類Dev

Javaで文字列の配列を並べ替える

分類Dev

構造体の配列を文字列で並べ替える

分類Dev

Powershellは文字列の配列を特定の文字で並べ替えます

分類Dev

Pythonで文字列内の文字を並べ替える

分類Dev

文字列の配列を任意の数の部分文字列で並べ替える

Related 関連記事

  1. 1

    文字列配列を特定の文字列値で並べ替える

  2. 2

    Perlで特定の文字順序で文字列を並べ替える

  3. 3

    特定の方法で文字列のリストを並べ替える

  4. 4

    文字列を特定の値で並べ替える

  5. 5

    文字列配列をCの文字列長で並べ替える

  6. 6

    文字列を文字で並べ替える

  7. 7

    文字列を含むJTable列を特定の順序で並べ替える

  8. 8

    特定の文字の数で文字列のリストを並べ替える方法は?

  9. 9

    文字列をmipsで並べ替える

  10. 10

    Javaで文字列を並べ替える

  11. 11

    特定の列を並べ替える

  12. 12

    文字列のBsonArrayを並べ替える

  13. 13

    文字の配列を並べ替える

  14. 14

    文字列の特定の部分のみでテーブルを並べ替える

  15. 15

    Object [] []型の配列を特定の列で並べ替える方法

  16. 16

    特定の文字列値で並べ替える

  17. 17

    C ++-特定の方法でベクトル内の文字列を並べ替える

  18. 18

    文字列内の特定の場所でリストを並べ替える

  19. 19

    列の部分文字列でPandas Dataframeを並べ替える

  20. 20

    Lodashで数値文字列の配列を並べ替える

  21. 21

    Forthで文字列の配列を並べ替える

  22. 22

    日付文字列で辞書の配列を並べ替える

  23. 23

    jQueryで整数文字列型の配列を並べ替える

  24. 24

    VB.net(文字列)でDataGridViewの列を並べ替える方法

  25. 25

    Javaで文字列の配列を並べ替える

  26. 26

    構造体の配列を文字列で並べ替える

  27. 27

    Powershellは文字列の配列を特定の文字で並べ替えます

  28. 28

    Pythonで文字列内の文字を並べ替える

  29. 29

    文字列の配列を任意の数の部分文字列で並べ替える

ホットタグ

アーカイブ