【问题标题】:Python 2.7 syntax errorPython 2.7 语法错误
【发布时间】:2012-02-17 03:27:39
【问题描述】:

为什么下面会出现语法错误?

self.update( { (u,v) : t for (u,v),t in old_items if u in new_vert and v in new_vert } )
                           ^
SyntaxError: invalid syntax

【问题讨论】:

  • 什么是 old_items。你想做什么?
  • 你能有一个以(u, v)为关键字的字典理解吗?
  • @Blender:是的,你可以。这是一个元组,所以它是可散列的。另一方面,列表会引发 TypeError。
  • @AdamBernier 实际上取决于uv(例如(1, [2]) 会失败)。但错误不会是SyntaxError,而是TypeError
  • @OP:你的 python 支持字典理解吗?检查{x:0 for x in range(10)}

标签: python python-2.7 syntax-error python-2.6


【解决方案1】:

这是一个语法错误,因为您使用的不是 Python 2.7。仔细检查您的解释器的版本。输入“python -V”(大写-V)查看。

【讨论】:

  • 很抱歉,我只是检查了一下,它是 python 2.6.5。 python 2.7 中提出的另一个问题如下:对于:dump=open("table/matrix.pkl",'w')。问题:IOError:[Errno 2] 没有这样的文件或目录:'table/matrix.pkl'。该目录应在代码执行时生成。请帮助解决这个问题。非常感谢。
  • @user:您收到该错误是因为该目录不存在。尝试:if not os.path.exists(the_dir): os.makedirs(the_dir),然后尝试打开文件。
  • 在 dump=open("table/matrix.pkl",'w') 之前,添加了 mkdir("table")。应该可以用这个权限创建目录吧?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多