TypeError: неподдерживаемые типы операндов для /: 'tuple' и 'int' - PullRequest
0 голосов
/ 21 сентября 2018

У меня проблемы с обработкой этой ошибки, неподдерживаемая ошибка типа операнда, и я не уверен, что я делаю неправильно в этом случае.Любая помощь будет оценена !!

def closest_pair(list):
if (len(list) <= 3):
    return min_distance(list)
else:
    left, right = split_into_two(list)
    left_min = closest_pair(left)
    right_min = closest_pair(right)
    if(left_min[2]>right_min[2]):
        return right_min
    else:
        return left_min

def split_into_two(list):
    med_val = statistics.median(list)
    med_x = med_val[0]
    left = []
    right = []
    for i in list:
        if (i[0]<med_x):
            left.append(i)
        else:
            right.append(i)
    return left, right

, и печать closest_pair выдает:

Traceback (most recent call last):
  File, line 109, in <module>
    print(closest_pair(text_file))
  File, line 61, in closest_pair
    left_min = closest_pair(left)
  File, line 62, in closest_pair
    right_min = closest_pair(right)
  File, line 60, in closest_pair
    left, right = split_into_two(list)
  File, line 44, in split_into_two
    med_val = statistics.median(list)
  File, line 358, in median
    return (data[i - 1] + data[i])/2
TypeError: unsupported operand type(s) for /: 'tuple' and 'int'

1 Ответ

0 голосов
/ 21 сентября 2018

Сообщение об ошибке очень явное:

    return (data[i - 1] + data[i])/2
TypeError: unsupported operand type(s) for /: 'tuple' and 'int'

Это говорит о том, что программа пытается разделить кортеж на int.Итак, data[i - 1] + data[i] - это кортеж, и это означает, что каждый из data[i - 1] и data[i] - это кортежи, а не числа, как вы, возможно, ожидаете.

Обратите внимание, что ошибка возникает внутри функции statistics.median,Убедитесь, что вы передаете аргументы с правильным типом этой функции.

...