用find/find-all match方式查找list元素

查找list中的一个子list

假定数据库里面有若干行记录,newlisp mysql模块返回结果是用一个list表示这个若干行记录,然后每个元素都是一个list,里面包含一行记录,每行记录list里面有包含了若干list,每个list都有两个元素:字段名和字段值。

现在我们可以用find方式来进行模式查找

> (find (list (list "issue_id" 1773) ‘*) ‘((("issue_id" 1773) ("custom_field_id" 7) ("type" "IssueCustomField") ("name" "\229\143\145\231\142\176\230\151\165\230\156\159") ("default_value" "") ("value" "2014-06-27"))) match)
0

这个例子就是查找这些行里面第一个字段名为issued_id,值为1773的行,由于用的是find,所以查找的是第一行。

find返回0, 用$0可以查看结果。

> $0
(("issue_id" 1773) ("custom_field_id" 7) ("type" "IssueCustomField") ("name" "发现日期")
 ("default_value" "")
 ("value" "2014-06-27"))

查找list中的若干子list

用find-all可以找到所有符合模式的记录,

(set ‘r (find-all (list (list "issue_id" issue-id) ‘*) issue-customized-values))

和find差不多,只是注意结果是直接返回的。因此不要用$0查看结果。

不过$count可以查看有多少记录被找到。

find/find-all match特别适合用于对数据库结果记录集进行进一步的查找

时间: 2024-10-09 17:23:43

用find/find-all match方式查找list元素的相关文章

学underscore在数组中查找指定元素

前言 在开发中,我们经常会遇到在数组中查找指定元素的需求,可能大家觉得这个需求过于简单,然而如何优雅的去实现一个 findIndex 和 findLastIndex.indexOf 和 lastIndexOf 方法却是很少人去思考的.本文就带着大家一起参考着 underscore 去实现这些方法. 在实现前,先看看 ES6 的 findIndex 方法,让大家了解 findIndex 的使用方法. findIndex ES6 对数组新增了 findIndex 方法,它会返回数组中满足提供的函数的

数组元素查找(查找指定元素第一次在数组中出现的索引)

import java.util.Scanner; /* * 需求:数组元素查找(查找指定元素第一次在数组中出现的索引) * (1)给定数组int[] arr={5,7,3,2,5} * (2)要查询的元素通过键盘录入的方式确定 * (3)定义一个查找数组元素第一次出现位置的方法(注:要查找的元素就是键盘录入的数据) * *分析: * A:定义数组int[] arr={5,7,3,2,5}; * B:键盘录入一个被查询的数据 * C:写方法实现查找指定元素在数据中第一次出现的索引 * 遍历数组,

HDU 2025 查找最大元素

个人感觉本题是个垃圾题 比如输入: ZZZZZZa 输出应该是: ZZZZZZa(max) 否则错. 判题系统有问题 查找最大元素 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 27852    Accepted Submission(s): 15444 Problem Description 对于输入的每个字符串,查找其中的最大字母

hdu 2025 查找最大元素(java)

问题: 此类要对字符元素进行处理的最好使用字符数组来做. 要考怒最后一个元素要进行空行,此时有两种情况,可以对最后一个元素直接进行处理. 查找最大元素 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 35186    Accepted Submission(s): 19474 Problem Description 对于输入的每个字符串

查找最大元素

查找最大元素 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 30586 Accepted Submission(s): 16854 Problem Description 对于输入的每个字符串,查找其中的最大字母,在该字母后面插入字符串"(max)". Input 输入数据包括多个测试实例,每个实例由一行长度不超过100的字符串组

在一个升序的但是经过循环移动的数组中查找指定元素

数组是升序的,数组经过循环移动之后,肯定是有左半部分或者有半部分还是升序的. 代码: public class SearchRotateArray { public static int search(int a[], int l, int u, int x) { while(l<=u){ int m = (l+u)/2; if(x==a[m]){ return m; }else if(a[l]<=a[m]){ //左半部分升序排列 if(x>a[m]){ l=m+1; }else if

jQuery学习笔记之过滤器三(向上查找兄弟元素、向下查找兄弟元素)

向上查找兄弟元素的方法:prev方法.prevAll方法.prevUntil方法 向下查找兄弟元素:next方法.nextAll方法.nextUntil方法 向上查找兄弟元素 1.prev方法 2.prevAll方法 3.prevUntil方法 向下查找兄弟元素 1.next方法 2.nextAll方法 3.nextUntil方法 jQuery学习笔记之过滤器三(向上查找兄弟元素.向下查找兄弟元素)

Lua查找表元素过程(元表、__index方法是如何工作的)(转载)

文章来源于 Lua查找表元素过程(元表.__index方法是如何工作的) Lua的表本质其实是个类似HashMap的东西,其元素是很多的Key-Value对,如果尝试访问了一个表中并不存在的元素时,就会触发Lua的一套查找机制,也是凭借这个机制,才能够实现“面向对象”的. 举例说明: tempTable = {} print(tempTable.memberA) --这里试图打印tempTable并不存在的成员memberA 执行结果:nil输出为nil的原因很简单,tempTable中并没有m

DOM_02之查找及元素操作

1.查找之按节点间关系查找周围元素: 2.查找之HTML属性:①按id查找:var elem=document.getElementById("id"):找到一个元素,必须document调用:②按标签名:var elems=parent.getElementsByTagName("标签名"):在指定父元素下查找指定标签名元素,查找所有子代节点:③按name属性:var elems=parent.getElementsByName("name")