2014-10-06 6 views
0

У меня есть программа для назначения, которая делает список целых чисел из текстового файла. Затем он сортирует данные с помощью сортировки вставки или пузырька. Я выбрал тип пузыря. Я могу переключиться, если необходимо, но они оба O (n^2) (я считаю). Целые числа представляют расстояния на улице. Целью является вычисление наилучшего местоположения для открытия нового магазина путем поиска медианы списка. Однако, когда я запускаю то, что у меня есть, я получаю сообщение об ошибке, указывающее, что объект «list» не может быть вызван. Я не понимаю эту ошибку.Объект 'List' не подлежит вызову

def make_list(perkList,fileName): 


    with open(fileName) as f: 
     for line in f.readlines(): 
      line = line.split() 
      perkList.append(int(line[1]))# reason for this is there is a string in line[0] 
    return perkList 


def perkSort(perkList): 

    sorted = False 
    while not sorted: 
     sorted = True 
     for i in range(len(perkList)-1): 
      if perkList[i] > perkList[i+1]: 
       sorted = False 
       perkList[i], perkList[i+1] = perkList[i+1], perkList[i] 
    print("sorted List",perkList) 




def median(perkList): 
    middle = len(perkList)//2 
    if middle % 2 == 0: 
     return (perkList(middle) + perkList(middle - 1))//2 
    else: 
     return perkList(middle) 
def main() 
    perkList = [] 
    fileName = input("Enter file name: ") 
    make_list(perkList,fileName) 
    print(perkList) 
    perkSort(perkList) 
    median(perkList) 
main() 

мой список [70, 120, 170, 200]

Traceback (most recent call last): sorted List [70, 120, 170, 200] File "C:/Users/User'/PycharmProjects/messes/findSlow.py", line 43, in <module> median(perkList) File "C:/Users/User'/PycharmProjects/messes/findSlow.py", line 34, in median return (perkList(middle) + perkList(middle - 1))//2 TypeError: 'list' object is not callable

+0

I поймите, что это не лучший способ задать этот вопрос Stion. Я постараюсь изо всех сил очистить любую путаницу. – acloudypsychopass

+0

Можете ли вы показать нам «трассировку»? –

+0

Да. один момент. – acloudypsychopass

ответ

0

Вместо этого:

perkList(middle) 

Вам нужно это:

perkList[middle] 
+0

Черт, я сейчас чувствую себя немым. Однако, спасибо :) – acloudypsychopass

Смежные вопросы