2015-04-03 43 views
-1

我有一个关于蟒蛇格式问题:关于Python的格式

query_score = {query_id:set((doc_id, score) 
          for v, query in queries.items() 
          for document in txt_filenames 
           doc_id = document.split('\\')[-1] 
           score = cos(query, texts[doc_id]))) 
       for query_id, b in queries.items()}  

它说,它有一个“语法错误:无效的语法”。有没有关于for循环之下的两个句子的问题? 我是新来的python,以便任何帮助将不胜感激。

+3

你期望它做什么?另外,这是真的如何缩进你的代码? – 2015-04-03 04:10:46

+0

我看看这段代码,我只能说:[WAT?](http://cdn.shopify.com/s/files/1/0070/7032/files/wat_explained_grande.jpg?113131) – alfasin 2015-04-03 04:12:51

+0

I' m会得到一个包含每个查询的ID在每个文档和他们之间的分数的集合。 – 2015-04-03 04:15:06

回答

0

对我来说,看起来你可能在第二行到最后一行的末尾有一个额外的括号。摆脱额外的问题可能会解决问题。

+0

是的,我犯了一个错误。但是在我摆脱它之后。它仍然说我有一个“SyntaxError:无效的语法”的问题。 – 2015-04-03 04:18:19

1

你不能在理解的中间定义变量,所以你需要在之后的内联这些线路,例如:

query_score = {query_id: set((document.split('\\')[-1], cos(query, texts[doc_id])) 
          for v, query in queries.items() 
          for document in txt_filenames) 
       for query_id, b in queries.items()} 
+0

哇。它看起来很有效! – 2015-04-03 04:20:29

+0

非常感谢。 – 2015-04-03 04:20:54