Ich habe dieses unerwartetste Verhalten entdeckt, das ich nicht zu erklären vermag. Ich habe eine Python Funktion geschrieben eine PDB Datei zu analysieren (Atomkoordinaten für die Proteinstruktur), wie als eine Liste von Listen, zB:Python gibt während der Iteration eine Zeichenfolge anstelle der Liste zurück
[
['ATOM ', ' 1700', ' N ', ' ', 'VAL', ' B', ' 11', ' ', ' ', matrix([[-19.164, -27.781, -11.31 ]]), ' 1.00', ' 18.57', ' ', ' ', ' N', ' '],
...
]
Wenn ich über die Liste iterieren, wie folgt:
for line in pdb[:50]:
print line, len(line), type(line)
Ich bekomme jedes Element wie erwartet, mit 16 Elementen in jeder Liste.
Wenn ich jedoch laufen die folgenden:
for line in pdb:
print line, len(line), type(line)
der 6. Zeile (bei 0 Nummerierung), ist eine Folge von Wert ' 311'
. Dies tritt auch auf, wenn ich enumerate()
verwende, um über pdub
zu iterieren. Wenn ich dieses Element manuell mit pdb[6]
extrahiere, handelt es sich um eine normale Liste mit 16 Elementen, und der Wert ' 311'
erscheint nirgendwo in dieser Liste.
Das macht überhaupt keinen Sinn für mich!
macht keinen Sinn für mich entweder machen. Kannst du versuchen, eine [MCVE] zur Verfügung zu stellen? –
Sie sollten uns Details/Code über Ihre Parsing-Funktion geben, die Sie geschrieben haben – DomTomCat
Welche Version von Python verwenden Sie? Sieht für mich ist es ein Nebeneffekt der Slicing Ihre Liste. – Paul