Попробуйте взглянуть на списки, они обеспечивают однострочный способ создания списков. Если вы не знаете, что это такое, это довольно приличный справочник, чтобы вы начали here. Кроме того, взгляните на tuple
, так как они более подходят для парных значений, в отличие от списков. Обратите внимание, что кортежи не изменяются, поэтому вы не можете вносить изменения после их создания.
Вашего список с помощью кортежей будут выглядеть следующим образом
foo = [(3,350),(4,800),(0,200),(4,750)]
Насколько мне известно, списки Python не имеют предопределенного размера, а они увеличиваются и уменьшаются по мере внесения изменений. Итак, что вы хотите сделать, найти наибольшее значение индекса в списке, или foo = [x[0] for x in list_of_pairs]
получит доступ к первому индексу каждого списка внутри вашего основного списка, который называется list_of_pairs
. Обратите внимание, что эта стратегия будет работать и для списка tuple
.
Ниже следует делать то, что вы хотите
list_of_pairs = [[3,350],[4,800],[0,200],[4,750]]
indexes = {x[0] for x in list_of_pairs}
new_list = []
for i in indexes:
new_list.append([x[1] for x in list_of_pairs if x[0] == i])
Если список, который у вас есть, имеет отверстия (например, индекс 1 и 2 пустые), вы можете пересмотреть дизайн. Возможно, словарь будет хорошим выбором здесь – thefourtheye