当前位置: 首页 > 知识库问答 >
问题:

阅读lazy seq-如何添加索引

云承弼
2023-03-14

我有一个玩具项目,我想把一些字符串值添加到Redis数据库中。输入来自一个巨大的CSV文件。下面的(懒)函数工作正常,但我不知道如何添加到键的索引值读取到输入文件-两个注释行。

你能给我它的提示/网址/参考吗?谢谢你!


    (defn collector [myfile]
        (with-open [rdr (io/reader myfile)]
          (doseq [line (line-seq rdr)]
               ; [idx (iterate inc 0)]
            (let [[k v1 v2 v3 v4 v5 v6 v7] (clojure.string/split line #",")]
              (red/set db
                (str "key:" k)
               ;(str "key:" k ":" idx)
                (str v1 "-" v5 "-" v6))))))

共有1个答案

郎河
2023-03-14

在不改变代码结构的情况下,最好的方法是将索引附加到以下行:

(doseq[[idx行](映射索引向量(行顺序rdr))…)

然后第二行将按计划工作。

(map indexed vector coll)将两个参数(索引和序列元素)传递给vector函数,生成它们的元组,并对其进行解构绑定[idx line]将其元素绑定到所需的名称。

这是索引集合的常用习惯用法。您也可以这样做:

(映射向量(范围)coll),其工作方式与map-index相同,尽管这个习惯用法可用于制作任何集合的元组:

(map vector (range) [:a :b :c :d] (iterate (partial * 2) 1))

;;=> ([0 :a 1] [1 :b 2] [2 :c 4] [3 :d 8])

 类似资料:
  • 欢迎来到Go的世界,让我们开始探索吧! Go是一种新的语言,一种并发的、带垃圾回收的、快速编译的语言。它具有以下特点: 它可以在一台计算机上用几秒钟的时间编译一个大型的Go程序。 Go为软件构造提供了一种模型,它使依赖分析更加容易,且避免了大部分C风格include文件与库的开头。 Go是静态类型的语言,它的类型系统没有层级。因此用户不需要在定义类型之间的关系上花费时间,这样感觉起来比典型的面向对

  • 我是hazelcast的新手,我到处都读到添加索引将提高hazelcast中的查询性能。我将数据存储在hazelcast地图中,键作为字符串,值作为便携式。如果我假设我的价值是这样的: 用于添加索引的golang文档说,在将条目添加到此映射之前,应确保添加索引 所以我对此没有什么疑问: 在给地图赋值之前,是否每次都需要添加索引?还是在应用程序生命周期中只有一次

  • 我想通过读取直接从Python访问消息。 我(非常有限)的理解是,正确的读取方式是绑定数据报套接字。 显然正在使用: 我应该如何从Python中读取< code>/dev/log? 编辑:根据@Barmar的评论——只有一个进程可以访问< code>/dev/log,因此该部分是干净的,设备在读取之前必须是干净的。< code>sudo lsof /dev/log不显示任何内容。 围绕这个主题的J

  • 登录企业管理-订阅号-设置订阅号管理员

  • 我需要一个非常简单的例子,说明如何使用Neo4JClient将节点添加到索引中 在下面的C代码中,我创建了一个索引和一个员工节点。 问题: 在下面的代码中,如何将创建的节点添加到索引中?解决方案应允许搜索员工ID或姓名。

  • 本文向大家介绍Mysql如何为表字段添加索引?相关面试题,主要包含被问及Mysql如何为表字段添加索引?时的应答技巧和注意事项,需要的朋友参考一下 1.添加PRIMARY KEY(主键索引) 2.添加UNIQUE(唯一索引) 3.添加INDEX(普通索引) 4.添加FULLTEXT(全文索引) 5.添加多列索引

  • 问题内容: 如何添加到特定内容?不起作用。 问题答案: jQuery <1.9 jQuery 1.9以上

  • 我尝试用自定义身份验证器设置自定义OkHttpClient,但是正如文档所说:“响应来自远程web或代理服务器的身份验证挑战。”我必须为每个图像提出2个请求,这是不理想的。 谢了!