列表推导:python2和python3中作用域的问题
python2中:
x = 'my love' dummy = [x for x in 'ABC'] print x
此时x打印为:'C'
python3中:
x = 'my love' dummy = [x for x in 'ABC'] print(x)
此时x打印为:'my love'
在 Python 3 中都有了自己的局部作用域,就像函数似的。表达式内部的变量和赋值只在局部起作用,表达式的上下文里的同名变量还可以被正常引用,局部变量并不会影响到它们。
在python3中:
x = 'my love' dummy1 = [ord(x) for x in x] print(x) print(dummy1)
x 的值被保留了。
列表推导也创建了正确的列表。
人生就是要不断折腾