你打错了吧。你这个表达式无论是3.3还是2.7都应该是错的。
把你前面的几句话都写出来。new_posting是什么类型的。
你只有普通用户权限。想新安装一个python。可以试试virtual_env(我没有用过),不过绝对可以试试pypy。
另外你虽然在.bashrc里写了这一句。你还需要验证它有没有生效。
你输入env,然后结果中的PATH变量有没有如你看愿的把你的目录放在前面。
另外你可以使用绝对目录来使用python
/home/myusername/python3/bin/python mypythonscript.py
回过头来看,我还是对你的表达式感觉有些疑问。我又查看了一下帮助。首先for这个用法应该是list里才能用的吧。假设在dict里也能用。那么pos应该是一个tuple,那么pos+key又是怎么能够实现呢?所以我觉着还是你的表达式写错了。
会不会是这样
posting={1:[2],3:[4]}
new_posting =[1,2,0]
key=1
new_posting = [ pos for pos in new_posting if pos+key in posting[key] ]
或者是
new_posting ={ pos for pos in new_posting if pos+key in posting[key] }
这个返回结果不是字典,竟然是集合set
我在python2.7上试验通过。windows平台。
是版本的问题,这种写法是python 2.7 加的,2.6中会是语法错误。
修改为
new_posting = set( pos for pos in new_posting if pos+key in posting[key] )
即可兼容python2.6。
附:python学习网站:http://cpython.net
python 2.7教程:http://www.cpython.net/tutorial/1
这个明显是语法都错了啊!第一个pos去掉试试!
我这里运行没问题啊