2014-10-06 117 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