У меня есть куча взаимозависимых переменных, которые я хочу сохранить в списке элементов класса. Теперь я хочу, чтобы он сортировался по одной из функций класса. На данный момент, что я делаю это:Создайте класс python с уникальной функцией
class myclass(object):
lst_of_A=[]
def __init__(self, Attr_A, Attr_B, Attr_C):
self.A=Attr_A
self.B=[Attr_B]
self.C=[Attr_C]
self.lst_of_A.append(Attr_A)
def append_to_existing_entry(self, Attr_B, Attr_C):
self.B.append(Attr_B)
self.C.append(Attr_C)
Теперь я использую попробовать и только в цикле для создания списка соответственно:
my_lst_of_classes=[]
for el in read_in_data:
try:
ind=my_lst_of_classes[0].lst_of_A.index(el[0])
my_lst_of_classes[index].append_to_existing_entry(el[1],el[2])
except:
my_lst_of_classes.append(myclass(el[0],el[1],el[2]))
Это работает, но кажется очень неуклюжим. Есть ли лучший способ сделать это?
по крайней мере заменить 'исключением:' на 'кроме ValueError:' –
Вот мое понимание вашей проблемы: у вас есть список кортежей '(a, b, c) 'в' read_in_data'. Вы хотите * group * (а не * sort *) значение 'b' и' c' каждого 'a' (с дубликатами). Неясно, действительно ли факт, даже после запуска вашего кода на каком-то примере. Вы можете объяснить? –
Sry за то, что он недостаточно ясен. Ваше понимание в основном правильное, но вход не обязательно является кортежем, в моем случае это список списков. Для моих данных они были бы, например, read_in_data [0] [0] = [1,0,1,0,0,0,0], read_in_data [0] [1] = [0, 2, 4] и read_in_data [0] [2] = [1,1, -1,1]. Затем следует read_in_data [1] [0] = [1,0,1,0,0,0,0], read_in_data [1] [1] = [0,2,6] и read_in_data [1] [2] = [1,1, -1,1]. (Итак, read_in_data [0] [0] = read_data [1] [0] и read_in_data [0] [2] = read_in_data [1] [2]) – Eulenfuchswiesel