Невозможно исправить ошибку TypeError: «<» не поддерживается между экземплярами «str» и «list» - PullRequest
0 голосов
/ 19 сентября 2019

nba output filenba data Я позаимствовал коды у GeeksforGeeks для бинарного поиска и создал один из моих собственных.Но я продолжал получать ошибку:

TypeError: '<' не поддерживается между экземплярами 'str' и 'list' </p>

Это просто простой бинарный поиск, написанныйв Python.Алгоритм протестирован, и я просто не могу понять, как исправить ошибку Python.Я гуглил много раз, но не мог это исправить.Я смотрю на решения StackOverflow и не могу это исправить.Очень признателен, если кто-то может мне помочь, пожалуйста.

import csv
import time

def binarySearch(data, key): 
    print("inside binarySearch")
    matched = " "
    location = -1

    low = 0
    middle = 0
    high = len(data)-1

    while (low <= high):
        # calculate middle: the half of lower and upper
        middle = int((low + high)/2) 
        if data[middle] == key :
            found = True
            matched = key
            print("Found --> : " + matched)
            location = middle # Get the Middle value
            break
        else:
            if key < data[middle]:
                high = middle - 1
            else:
                low = middle + 1/

    print("Position : " + str(location) + " record : " + str(matched))
    return location, matched

if __name__ == "__main__":

    datafile = open('nba.csv', 'r')
    datareader = csv.reader(datafile, delimiter=';')
    data = []
    for row in datareader:
        data.append(row)  

    sorted_data = list(data)
    sorted_data.sort()
    data = sorted_data
    query_string = "Boston Celtics" # Query Term

    start_range = time.time()
    output = binarySearch(data,query_string )
    print(output)

1 Ответ

0 голосов
/ 19 сентября 2019

Чтобы разделить целое число, просто используйте intnumber // intnumber, оно равно int(intnumber / intnumber

. Для вашего реального вопроса, проверьте форму вывода CSV.Он не одномерный, поэтому, когда вы получаете элемент своих данных CSV, вы фактически получаете другой список.IDK о csv библиотеке, но я использую панд csv_reader.Поскольку он работает с numpy, вы можете набрать data.shape, чтобы увидеть размеры массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...