Python, который более эффективен; если x! = y: x = y или x = y [дублировать]

Недавно я работал с python и pygame, и мне было интересно, более эффективно с точки зрения процессора и оперативной памяти использовать if x != y: x = y или x = y в моем основном цикле? Я понимаю, что разница будет настолько мала, что почти не будет разницы, но мне все еще любопытно.


person Cedric Hutchings    schedule 17.06.2016    source источник
comment
Не уверен, что вы здесь имеете в виду ... у первого оператора есть 2 компонента, оператор if и присваивание, у второго оператора просто такое же присваивание. Итак, разве не имеет смысла, что второй быстрее?   -  person Chris Sprague    schedule 18.06.2016
comment
Не обязательно: разве сравнения не быстрее, чем присваивания? Тогда, если бы почти каждый раз x == y, тогда, вероятно, было бы быстрее сначала проверить, не так ли?   -  person Dleep    schedule 18.06.2016


Ответы (1)


x = y не требует сравнения, а сравнение иногда может потребовать значительных ресурсов.

Так что я бы сказал, что просто x = y лучше.

person Yotam Salmon    schedule 17.06.2016
comment
Да, но точка зрения OP в том, что иногда сравнение неверно, и тогда вам не нужно присваивание. - person jonrsharpe; 18.06.2016
comment
Я понимаю его точку зрения, но сравнение, насколько я знаю, дороже (с точки зрения ресурсов), чем назначение. - person Yotam Salmon; 18.06.2016