У меня есть файл .xyz H2S, и если я читаю файл следующим образом:
with open('H2S.xyz','r') as stream:
for line in stream:
print(line)
Я получаю это:
3
XYZ file of the hydrogen sulphide molecule
S 0.00000000 0.00000000 0.10224900
H 0.00000000 0.96805900 -0.81799200
H 0.00000000 -0.96805900 -0.81799200
В первой строке указано количество атомова последние 3 строки - координаты этих атомов.
Я должен написать некоторый код для извлечения позиции каждого атома в молекуле в виде списка, где каждый элемент представляет собой другой список с атомом.координаты.
Если я сделаю это:
with open('H2S.xyz','r') as stream:
new=list(stream)
new
Я получу каждую строку как элемент в списке, и если я сделаю это:
with open('H2S.xyz','r') as stream:
new_list=[]
for line in stream:
new_list=new_list+line.split()
new_list
Я получу каждуюэлемент отдельно:
['3','XYZ','file','of','the','hydrogen','sulphide','molecule','S',
'0.00000000','0.00000000','0.10224900','H','0.00000000','0.96805900',
'-0.81799200','H','0.00000000','-0.96805900','-0.81799200']
Что я не хочу.Список, который я хочу, выглядит следующим образом:
[['0.00000000','0.00000000','0.10224900'],
['0.00000000','0.96805900','-0.81799200'],
['0.00000000','-0.96805900','-0.81799200']]
Но я не уверен, как его кодировать.