Почему мне не разрешено иметь несколько назначений для каждого цикла с разной длиной списков в python

Точно так же, как мне разрешено делать это:

(РЕДАКТИРОВАТЬ - Мне тоже НЕ разрешено делать это, извините, я напутал, но в любом случае я думаю, что мой вопрос больше о том, как выполнять параллельные назначения в цикле)

for (x,i) in ([0,1,2],[3,4,5]):
  # do something

почему мне не разрешено делать это в каждом цикле (разная длина списка)

 for (x,i) in ([4,6,5,7,8,9],[1,2,3]):
   # do something

Я знаю, что вы получаете «ValueError: слишком много значений для распаковки», но почему цикл остановить, когда я закончу свою итерацию?

Реальное использование этого было бы для чего-то вроде этого, что я пытался сделать

for (keys,i) in (sorted(dic.keys(),key=custom_sort), range(10)):
  print dic[keys]

, где я сортирую словарь, а также печатаю только первые 10 лучших результатов (предположим, что в словаре есть сотни ключей) - мне нужны были только 10 лучших результатов.

Так как такой синтаксис в любом случае недопустим, что может быть следующим лучшим решением?

спасибо

0
задан Raja 30 July 2011 в 09:57
поделиться