class Thing(object):
def __init__(self, array):
self.a = array[0]
self.b = array[1]
self.c = array[2]
У меня есть список объектов Thing, каждый из которых имеет набор значений. Я пытаюсь вычислить гистограмма частотных распределений значений содержит в а, Ь, с, и поэтому у меня есть сценарий, который в основном делает:Использование строк, которые представляют переменную экземпляра в классе python для захвата значения
hist = dict()
for t in things:
if t.a not in hist.keys():
hist[s.a] = 0
else:
hist[s.a] += 1
Однако, я хочу, чтобы иметь возможность обобщить код, так что у меня есть локальный dict, который хранит частоту a, а затем частоту b. Я могу сделать это очень легко в рубине, просто прочитав в CSV-файле (вот откуда появляются атрибуты Thing, я создал класс, потому что в прошлом у меня были проблемы с созданием скриптов, которые не поддаются последующим изменениям, потому что они так одноранговый.
f = File.open('trainingdatatostudents.csv')
lines = f.readlines
attributes = lines[0]
attributes = attributes.split(",")
records = []
1.upto(10).each {|num|
hist = Hash.new(0)
name = ""
lines.each {|line|
elements = line.split(",")
records.push(elements[num])
hist[elements[num]] += 1
}
puts hist
}
Я знаю, что я могу использовать Dict переменный, которая есть в каждом экземпляре класса, но потом я просто имею значение как строки, и я не могу сделать что-то вроде s. «а» так, как мне это сделать?
Благодаря
Пример входного файла и ожидаемого результата? – Marcin