CSV-файлы, с которыми я имею дело, выглядят так:
{http://www.omg.org/XMI}id,begin,end,Emotion
17266,772,781,anticipation
17402,772,781,disgust
17304,1345,1370,disgust
17424,1534,1543,surprise
17424,1534,1543,surprise
17424,1534,1543,surprise
17424,1534,1543,surprise
17472,1578,1602,anger
17525,1611,1617,fear
Я пытаюсь создать словарь списков, содержащий в качестве ключей записи 'Emotion'
и 'begin'
(второй столбец) как значения ключей, которые встречаются в их ряду.
Желаемый вывод будет выглядеть так:
{'anger': [1578,
2853,
3951,...],
'anticipation': [772, 4154, 4400...],
...}
Пока мне удалосьвыведите желаемый результат, но каждое значение представляет собой собственный список внутри списка каждой клавиши.
Мой текущий код:
import pickle
from pprint import pprint
import tkinter
from tkinter import filedialog
import csv
from itertools import groupby
root_tk = tkinter.Tk()
root_tk.wm_withdraw()
def extract_gold_emotions():
"""Returns mapping of GOLD emotions to their indices"""
filename = filedialog.askopenfilename()
l = list(csv.reader(open(filename)))
f = lambda x: x[-1]
gold_emo_offsets = {k:list(sorted(map(int, x[1:2])) for x in v)\
for k,v in groupby(sorted(l[1:], key=f), f)}
pickle.dump(gold_emo_offsets, open("empos.p", "wb"))
return gold_emo_offsets
my_emotions = extract_gold_emotions()
Текущий вывод:
{'anger': [[1578], [2853], [3951], [4084], [4693], [6420], [8050]],
'anticipation': [[772], [4154], [4400], [7392]],....]]}
Любые подсказки о том, что нужно изменить в коде для вывода желаемого словаря списков?
Заранее спасибо!
РЕДАКТИРОВАТЬ:
Значения словаря должны быть выведены как целых чисел .