Использование bisect в списке кортежей?

Я пытаюсь понять, как использовать bisect в списке кортежей, например

[(3, 1), (2, 2), (5, 6)] 

Как я могу делить пополам этот список в соответствии с [1] в каждом кортеже?

 list_dict [(69, 8), (70, 8), ((65, 67), 6)] tup1,tup2 (69, 8) (70, 8) list_dict [((65, 67), 6)] fst, snd ((65, 67),) (6,) 

И я вставляю в bisect

 idx = bisect.bisect(fst, tup1[1]+tup2[1]) 

Который дает мне unorderable types: int() < tuple()

3 Solutions collect form web for “Использование bisect в списке кортежей?”

Вы можете выделить значения в отдельных списках.

 from bisect import bisect data = [(3, 1), (2, 2), (5, 6)] fst, snd = zip(*data) idx = bisect(fst, 2) 

Обратите внимание, однако, что для работы bisect ваши данные действительно должны быть заказаны …

В некоторых случаях просто

 bisect(list_of_tuples, (3, None)) 

будет достаточно.

Поскольку None будет сравнивать меньше, чем любое целое число, это даст вам индекс первого кортежа, начинающегося как минимум с 3 или len(list_of_tuples) если все они меньше 3. Обратите внимание, что list_of_tuples сортируется.

Проверьте нижнюю часть документации: http://docs.python.org/3/library/bisect.html . Если вы хотите сравнить с чем-то другим, кроме самого элемента, вы должны создать отдельный список так называемых ключей. В вашем случае список int, содержащий только [1] кортежа. Используйте этот второй список для вычисления индекса с помощью bisect. Затем используйте это для того, чтобы вставить элемент в исходное (список кортежей) и ключ ([1] кортежа) в новый список ключей (список целых чисел).

  • Является ли python package virtualenv необходимым, когда я использую python 3.3?
  • Учитывая метод, как мне вернуть класс, который он принадлежит в Python 3.3 дальше?
  • python django - страница не найдена ошибка (404) - статическая ошибка
  • Как преобразовать некоторый символ в пятизначный unicode в Python 3.3?
  • Не удается запустить сценарий Pygame, который воспроизводит файл OGG, скомпилированный с помощью cx_Freeze
  • Ubuntu - Как установить Python-модуль (BeautifulSoup) на Python 3.3 вместо Python 2.7?
  • SyntaxError: несколько операторов, найденных при компиляции одного оператора
  • Установка Python 3.3 на Cygwin
  • Python - лучший язык программирования в мире.