2016-01-25 4 views
1

Я пытаюсь запустить следующий сценарий, но я столкнулся с этой ошибкой:AttributeError: «INT» объект не имеет атрибута «добавляемых»

"AttributeError: 'int' object has no attribute 'append'"

X1 = [] 
Y1 = [] 
X2 = [] 
Y2 = [] 
X3 = [] 
Y3 = [] 
X4 = [] 
Y4 = [] 
X5 = [] 
Y5 = [] 

for b in range(1,5): 
    v = "f%d" %(b) 
    f = "/raw-data/data%d.dat" %(b) 

for N in range(1,5): 
    for i, line1 in enumerate(open(f, 'r')): 
     if i >0: 
      pass 

     s1 = line1.split() 
     "X%d" %(N).append(float(s1[0])) 
     "Y%d" %(N).append(float(s1[1])) 
+0

Пожалуйста, не откатить полезным редактировать –

+0

Append это метод, который работает в списках, а не на Инт-с. .. не уверен, что вы здесь делаете – adamk

+0

Мне нужен сценарий выше, чтобы сделать «X1.append (float (s1 [0])), а также« X1.append (float (s1 [0])) » в первом и втором циклах и продолжаться на X3, X4 и X5. – Berk

ответ

0

Подумайте, что вы хотите сделать, и что ты делаешь. Вы хотите добавить float в integer вместо списка. N - это всего лишь номер, у вас есть append вместо одного из ваших списков.

0

Я думаю, вы хотите добавить к указанному номеру списка, но то, что вы сделали, не будет работать. Лучше всего было бы создать карту списков и получить их по индексу, как это:

lists = { 
    1: {'x': [], 'y': []}, 
    2: {'x': [], 'y': []}, 
    3: {'x': [], 'y': []}, 
    4: {'x': [], 'y': []}, 
    5: {'x': [], 'y': []}, 
} 

for b in range(1,5): 
    v = "f%d" %(b) 
    f = "/raw-data/data%d.dat" %(b) 

for N in range(1,5): 
    for i, line1 in enumerate(open(f, 'r')): 
     if i >0: 
      pass 

     s1 = line1.split() 
     lists[N]['x'].append(float(s1[0])) 
     lists[N]['y'].append(float(s1[1])) 
Смежные вопросы