2014-10-06 121 views
0

我有一個用於從文本文件中生成整數列表的賦值的程序。然後使用插入或冒泡排序對數據進行排序。我選擇了冒泡排序。我可能會在必要時切換,但他們都是O(n^2)(我相信)。整數表示街道上的距離。目標是通過查找列表的中位數來計算打開新商店的最佳位置。然而,當我運行我迄今爲止所做的,我得到一個錯誤,說'列表'對象不可調用。我不明白這個錯誤。'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

我意識到這不是問這個問題的最好方法Stion的。我會盡我所能清除任何混亂。 – acloudypsychopass 2014-10-06 03:13:22

+0

你能告訴我們'追蹤'嗎? – 2014-10-06 03:15:10

+0

是的。一會兒。 – acloudypsychopass 2014-10-06 03:15:39

回答

0

取而代之的是:

perkList(middle) 

你需要這樣的:

perkList[middle] 
+0

該死的我現在覺得很蠢。謝謝你:) – acloudypsychopass 2014-10-06 03:18:57