Какой из двух альтернатив ниже эффективнее? Любые рекомендации по дальнейшему его улучшению?Управление контуром, что более эффективно
Вариант А:
for i in BAR_Items:
if BAR_Items[i] != A and SHAPE[i+"_SHP"] != A: continue
if i in Selection:
Selection.remove(i)
BAR_Items[i].clearActions()
BAR_Items[i].add(vizact.spinTo(axisAngle=[0,1,0,90],speed=300))
VFrame.SetStatusText(frame, i + " has been deselected. "+ str(Selection))
else:
Selection.append(i)
BAR_Items[i].add(vizact.spin(0,1,0,90,viz.FOREVER))
VFrame.SetStatusText(frame, i + " selected. " + str(Selection))
break
Вариант B:
for i in BAR_Items:
if BAR_Items[i] == A or SHAPE[i+"_SHP"] == A:
if i in Selection:
Selection.remove(i)
BAR_Items[i].clearActions()
BAR_Items[i].add(vizact.spinTo(axisAngle=[0,1,0,90],speed=300))
VFrame.SetStatusText(frame, i + " has been deselected. "+ str(Selection))
else:
Selection.append(i)
BAR_Items[i].add(vizact.spin(0,1,0,90,viz.FOREVER))
VFrame.SetStatusText(frame, i + " selected. " + str(Selection))
break
Хорошо, я последовал предложения и нашел способ его синхронизации. Измеряя его 500 раз, В (0,001279264 секунды) быстрее, чем А (0,001966169 секунд) в среднем (цифры являются средними).
Когда вы их измеряли, что вы узнали? Пожалуйста, включите информацию о времени из их запуска. –
@ S.Lott: @relima: Будет ли он работать даже за исключением особых обстоятельств? Использование индекса и элементов из списка является ошибочным. – pyfunc
@pyfunc: «Будет ли он даже работать»? Очень важно. Все «более эффективные» вопросы должны включать метрики, чтобы показать, что (а) он фактически выполняется, и (б), который является более эффективным. –