есть два списка sample_attr и sample_val, которые хранят положение столбца и значение каждого столбца. исходные данные говорят строку 1 (1: 100 3: 250 8:50 12:40, ... 531: 300). Есть 216 образцов, каждый из которых имеет 531 атрибут. Сначала я разделяю атрибут и его значение, например: sample_attr [0] -> [1,3,8,12, ... 531], sample_val [0] -> [100,250,50,40, ... 300 ]. каждый список sample_attr хранит положение атрибута (столбец 1, столбец 3..column 531), а каждый список sample_val сохраняет значение в соответствующей позиции атрибута. Я хочу сделать цикл for ниже, но он не работает для выравнивания значения атрибута в соответствующей позиции атрибута: он показывает ошибку в строке «для sample1 в sample_attr и sample2 в sample_val:». как я могу выровнять значения с их соответствующей позицией атрибута (столбца)?
# adjust dimension
for sample1 in sample_attr and sample2 in sample_val:
attr = [0]*maxdim
s=0
for i in sample1:
attr[i-1] = sample2[s]
s=s+1
x.append(attr)
#the whole code below:
with fileinput.input(files=('C:/Users/Documents/dataset.txt')) as f:
for line in f:
datalist.append(line.split())
for exe in datalist:
exe_attr = []
exe_val=[]
for i in range(0, len(exe)):
exe_attr.append(int(exe[i].split(':', 1)[0]))
exe_val.append(int(exe[i].split(':', 1)[1]))
sample_attr.append(exe_attr)
sample_val.append(exe_val)
maxdim = 0
for sample in sample_attr:
if maxdim < sample[-1]:
maxdim = sample[-1]
maxdim = maxdim + 1
x = []
# adjust dimensiona not consistent
for sample1 in sample_attr and sample2 in sample_val:
attr = [0]*maxdim
s=0
for i in sample1:
attr[i-1] = sample2[s]
s=s+1
x.append(attr)