Может ли кто-нибудь сказать мне, как реализованы петли Python? Причина, почему я спрашиваю это потому, что я получаю различное поведение в двух следующих за петлю, когда я ожидаю, что такое же поведение (при условии, cases
просто набор элементов):Реализация Python для цикла
Первый цикла:
for case in cases:
blah
Второй цикл:
for i in range(len(cases)):
case = cases[i]
blah
Я бегу мой код в многопоточном среде.
В принципе, мне интересно, является ли цикл Python для цикла по набору (как в первом для цикла) просто быстрым способом второго. Что именно происходит, когда мы используем цикл python for, и есть ли какая-либо основная оптимизация/реализация, которая может вызывать разницу в поведении, которую я наблюдаю?
Если 'cases' фактически' set', второй фрагмент кода не работает. Случается, что это «список»? – delnan
Два комментария: (1) Что вы подразумеваете под многопоточной средой. Вы создали несколько потоков в коде Python? Если это код, пожалуйста, поделитесь этим кодом. (2) Вы можете поместить отпечатки в свои циклы и попытаться отладить. Вам нужно больше информации о том, что именно такое поведение говорит о том, что вы пытаетесь напечатать значение case на каждой итерации. – vishal
@ delnan Извините, что я имел ввиду список, а не – Penguinator