是python版本的问题吗?怎么解决?

2024-11-19 11:36:30
推荐回答(4个)
回答(1):

你打错了吧。你这个表达式无论是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平台。

回答(2):

是版本的问题,这种写法是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

回答(3):

这个明显是语法都错了啊!第一个pos去掉试试!

回答(4):

我这里运行没问题啊