¿Por qué la unión integrada no influye en mi código?

Tuve un error que reduje a esto:

a = ['a','b','c'] print( "Before", a ) " ".join(a) print( "After", a ) 

Que produce esto:

 runfile('C:/program.py', wdir=r'C:/') Before ['a', 'b', 'c'] After ['a', 'b', 'c'] 

¿Que está pasando aqui?

str.join no funciona en el lugar porque los objetos de cadena son inmutables en Python. En su lugar, devuelve un objeto de cadena completamente nuevo.

Si desea hacer referencia a este nuevo objeto, debe reasignarlo explícitamente:

 a = " ".join(a) 

Manifestación:

 >>> a = ['a','b','c'] >>> print "Before", a Before ['a', 'b', 'c'] >>> a = " ".join(a) >>> print "After", a After abc >>>