У меня есть текстовый файл с примерно тридцатью строками:
F2(g)+2e–|2F–(aq)|+2.87
Co3+(aq)+e–|Co2+(aq)|+1.82
Я разделил строки на '|'создать три отдельных списка, но я хочу объединить списки left
и right
и использовать сжатый список в качестве ключа в словаре, а третий список в качестве значений.Это мой текущий код:
infile = open('myfile.txt', 'r')
lines = infile.readlines()
infile.close()
data = {}
for line in lines[1:]:
left, right, value = line.rstrip('\n').split('|')
z = [str(x[0]) + x[1] for x in zip(left, right)]
data[z]=value
Это не работает.Когда я пытаюсь сжать left
и right
до z
, я получаю результат, подобный следующему:
['F2', '2F', '(–', 'g(', ')a', '+q', '2)']
['CC', 'oo', '32', '++', '((', 'aa', 'qq', '))']
Что я пытаюсь сделать, это следующий вывод:
{
'F2(g)+2e– 2F–(aq)': '+2.87',
'Co3+(aq)+e– Co2+(aq)': '+1.82'
}