【问题标题】:Convert a list of tuples of strings to a list of strings将字符串元组列表转换为字符串列表
【发布时间】:2016-02-17 10:35:14
【问题描述】:

如果我有疑问:

(def results_01 
       (projectResults "JHotDraw54b1" 
             (fn [] (damp.ekeko/ekeko [?tdn (l/fresh [ ?invoker ?invokedmethod]
                          (cts/calls ?invoker ?tdn "toolDone" ?invokedmethod))))))

结果给了我一个字符串元组列表,我需要将此列表转换为字符串列表,如何在 Clojure 中做到这一点。

结果是:

   #{("ActionTool") ("CompositeFigureCreationTool") ("DrawApplet") ("CreationTool") ("NestedCreationTool") ("URLTool") ("ConnectionTool") ("MDI_DrawApplication") ("DrawApplication")}

【问题讨论】:

  • 查询是问题的必要部分吗?您拥有的是一组字符串列表,其中每个列表中只有一个元素。
  • 是的,重要的是集合,我如何转换为字符串列表

标签: clojure


【解决方案1】:

这是一个集合而不是一个列表 - #{} 表示一个集合,包含它的所有元素。 () 对列表也是如此。

(def stuff #{'("ActionTool") '("CompositeFigureCreationTool") '("DrawApplet") '("CreationTool") '("NestedCreationTool") '("URLTool") 
         '("ConnectionTool") '("MDI_DrawApplication") '("DrawApplication")})

(defn change-stuff []
  (apply concat stuff))

(change-stuff) 会给你一个字符串列表:

("ActionTool" "CompositeFigureCreationTool" "DrawApplet" "CreationTool" "NestedCreationTool" "URLTool" "ConnectionTool" "MDI_DrawApplication" "DrawApplication")

如果你想要一套回来的话:

(into #{} (change-stuff))

【讨论】:

  • 如果我想要它作为一个集合怎么办{}
  • 那是地图,不是布景!你会使用into
  • np。请记住,您始终可以编辑您的问题,以便以后出现的人更容易阅读。您也可以编辑标题。你真的需要摆脱“元组”这个词。
猜你喜欢
  • 1970-01-01
  • 2012-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多