Skip to content
Related Articles

Related Articles

A += B Assignment Riddle in Python
  • Last Updated : 16 Jul, 2020

Predict the output of these two expressions on Python console

  • On console




    Geek = (1, 2, [8, 9])
    Geek[2] += [3, 4]

    Output:

    Explanation:

    • Look at the bytecode Python generates for the expression s[a] += b. It becomes clear how that happens.
    • It works step by step
      • Put the value of s[a] on Top Of Stack(TOS).
      • Perform TOS += b. This succeeds, If TOS refers to a mutable object. That is why appending item to list is successful.
      • Assign s[a] = TOS. This fails, If s is immutable. TypeError, because of tuple are immutable in above example.

    Things to learn

    • Putting mutable items in tuples is not a good idea.
    • Augmented assignment is not an atomic operation — we just saw it throwing an exception after doing part of its job.
    • Inspecting Python bytecode is not too difficult, and is often helpful to see what is going on under the hood.

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :