Python算法 - 冒泡排序,线性和二进制搜索

时间:2018-01-30 21:14:20

标签: python

问题基本上是要求我写一个二维数组来存储乐队名称和他们的销售数量。 然后它要求我编写一个程序,根据销售数量按升序使用冒泡排序对列表进行排序。 前两个部分相当简单,工作正常。但是,它后来要求我让它让用户输入一个乐队的名字,并使用线性搜索给出他们的图表位置。这是我正在努力的部分。

myList = [[53,"band1"],[26,"band2"],[923,"band3"],[31,"band4"],[44,"band5"],
[55,"band6"],[231,"band7"]]
def bubbleSort(myList):
    for passnum in range(len(myList)-1,0,-1):
        for i in range(passnum):
            if myList [i]>myList[i+1]:
                top7 = myList[i]
                myList[i] = myList[i+1]
                myList[i+1] = top7

x = int(input("Enter a band name: "))

found = False

for i in range(len(myList)):
 if(myList[i] == x):
  found = True
  print("%d found at %dth position"%(x,i))
  break

if(found == False):
 print("%d is not in list"%x)


bubbleSort(myList)
print(myList)

这是输出: 输入乐队名称:band4 Traceback(最近一次调用最后一次):   文件“python”,第10行,in ValueError:int()的基数为10的无效文字:'band4'

1 个答案:

答案 0 :(得分:0)

为什么在需要波段名称的字符串时使用int(input())?

Array
(
    [0] => Array
        (
            [id] => 1
            [firstname] => Firstname one
            [lastname] => Lastname one
        )

    [1] => Array
        (
            [id] => 2
            [firstname] => Firstname two
            [lastname] => Lastname two
        )

    [2] => Array
        (
            [id] => 3
            [firstname] => Firstname three
            [lastname] => Lastname three
        )
)

应该工作