icdlab的个人空间 https://blog.eetop.cn/icdlab [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

008_Skill基本语法—List操作函数

已有 1163 次阅读| 2023-8-1 18:52 |个人分类:Skill教程|系统分类:芯片设计| Skill

来源微信公众号:icdlab,关注公众号获取更多信息

查找List元素函数简介

Skill中List查找函数众多,下面对常见的查找函数做简单总结;

List查找函数

car

  • 函数功能:
    获取输入列表的第一个元素;
  • 函数用法:
    car( l_list ) ;=> g_result
  • 函数输入:
    输入参数l_list为list类型
  • 函数输出:
    返回值为输入参数l_list的第一个元素
  • 使用实例:
    car('("1" "2" "3")) => "1"
    car(list()) => nil
  • 函数说明:
    car函数不改变函数输入list

cdr

  • 函数功能:
    获取列表中除第一个元素外的其他元素组成的列表,注意返回值是list数据类型
  • 函数用法:
    cdr( l_list ) ;=> l_result
  • 函数输入:
    输入参数l_list为list类型
  • 函数输出:
    返回值为list数据类型,返回除第一个元素以外其他元素组成的列表;
  • 使用实例:
    cdr('("1" "2" "3")) => ("2" "3")
    cdr(list()) => nil
  • 函数说明:
    cdr函数不改变输入列表值

ca|d[a|d]r

  • 函数功能:
    由多个car/cdr函数组合成的新函数,例如cadar(l_list)等同于car(cdr(car(l_list)));
  • 函数用法:
    ca|d[a|d]r( l_list ) ;=> g_result
  • 函数输入:
    输入参数l_list为list类型
  • 函数输出:
    返回值根据函数确定;
  • 使用实例:
    cadr('("1" "2" "3")) => "2"
    cdar('((1 2) (3 4) (5 6))) => (2)

nth

  • 函数功能:
    获取列表中指定索引对应的元素值,注意索引从0开始
  • 函数用法:
    nth(x_index0 l_list ) ;=> g_result/nil
  • 函数输入:
    输入参数x_index0为索引值,整数类型,l_list为list类型;
  • 函数输出:
    返回值为列表中索引x_index0对应的元素;
  • 使用实例:
    nth(1 '("1" "2" "3")) => 2
    nth(2 '("1" "2" "3")) => 3
  • 函数说明:
    nth函数不改变输入列表值

nthelem

  • 函数功能:
    获取列表中指定索引对应的元素值,注意索引从1开始
  • 函数用法:
    nthelem(x_index1 l_list ) ;=> g_result/nil
  • 函数输入:
    输入参数x_index1为索引值,整数类型,l_list为list类型;
  • 函数输出:
    返回值为l_list中索引为x_index1对应的元素;
  • 使用实例:
    nthelem(1 '("1" "2" "3")) => 1
    nthelem(2 '("1" "2" "3")) => 1
  • 函数说明:
    nthelem函数不改变输入列表值

last

  • 函数功能:
    获取列表的最后一个元素,将改元素以list数据类型输出,注意返回值是list数据类型
  • 函数用法:
    last( l_arg ) ;=> l_result
  • 函数输入:
    输入参数l_arg为list类型
  • 函数输出:
    返回值为由输入列表最后一个元素组成的列表
  • 使用实例:
    last('("1" "2" "3")) => ("3")
    last('("1" "2" ("3"))) => (("3"))
  • 函数说明:
    last函数不改变函数输入参数

member

  • 函数功能:
    member函数从列表的第一个元素查找到最后,如果找到则返回从找到的元素开始直到最后的元素,找不到返回nil。
  • 函数用法:
    member(g_obj l_list ) ;=> l_sublist/nil
  • 函数输入:
    输入参数g_obj为需要判断的元素,输入参数l_list为list类型,
  • 函数输出:
    返回值输入列表中第一个元素为指定输入的最大子列表
  • 使用实例:
    member("2" '("1" "2" "3")) => ("2" "3")
    member("3" '("1" "2" ("3"))) => nil
  • 函数说明:
    也可以用来判断指定输入是否为list中的元素;

lindex

  • 函数功能:
    获取指定元素在列表中的索引值,注意索引值从1开始
  • 函数用法:
    lindex(l_list g_element [?all t/nil]) ;=> result
  • 函数输入:
    输入参数l_list为list数据类型,g_element为待查找元素,可选参数?all表示是否列出所有的索引值
  • 函数输出:
    元素在列表中的索引
  • 使用实例:
    lindx("2" '("1" "2" "3")) => 2
    lindx("2" '("1" "2" "3" "2") ?all t) => (2 4)
    lindx("2" '("1" "2" "3" "2") ?all nil) => 2
    lindx("4" '("1" "2" "3")) => nil
  • 函数说明:
    该函数也可以用来判断指定元素是否为list中的元素;

nthcdr

  • 函数功能:
    对列表进行指定次数cdr操作;
  • 函数用法:
    nthcdr( x_count l_list ) ;=> l_result
  • 函数输入:
    函数输入x_count为cdr操作的次数,l_list为操作对象;
  • 函数输出:
    函数输出为对l_list进行x_count次cdr操作后的值;
  • 使用实例:
    nthcdr( 1 '(a b c d)) => (b c d)
    nthcdr( 2 '(a b c d)) => (c d)

xCoord

  • 函数功能:
    获取输入列表的第一个元素,等同于car
  • 函数用法:
    xCoord( l_list ) ;=> g_result
  • 函数输入:
    函数输入l_list为list数据类型
  • 函数输出:
    函数输出为列表第一个元素
  • 使用实例:
    xCoord('(1 2)) => 1

yCoord

  • 函数功能:
    获取输入列表的第二个元素,等同于cadr
  • 函数用法:
    yCoord( l_list ) ;=> g_result
  • 函数输入:
    函数输入l_list为list数据类型
  • 函数输出:
    函数输出为列表第二个元素
  • 使用实例:
    yCoord('(1 2)) => 2

assoc

  • 函数功能:
    Skill中关联列表为键值对数据类似于字典, 该函数实现由键查找建对应子列表
  • 函数用法:
    assoc(g_key l_alist) ;=> l_association / nil
  • 函数输入:
    g_key变量为需要的关键值,l_alist 是为一个由多个list组成的list,格式为:((key1 value1) (key2 value2) (key3 value3) ...)
  • 函数输出:
    函数输出为l_alist的子元素,该子元素为列表类型,且列表第一个元素为g_key
  • 使用实例:
    aList = '(( A "one" ) ( B "two" ) ( C "three" ))
    assoc( B aList ) => ( B "two" )
    assoc( X aList ) => nil
  • 函数说明:
    实现类似字典查找功能

免责声明:
1,本公众号主要是交流学习IC设计知识,部分素材源于网络,若有侵权,作者会第一时间修改删除;
2,本公众号标明原创的文章欢迎转载并注明出处;
3,本公众号文章中出现的脚本仅供学习之用,作者不对其他任何个人或组织在使用脚本过程中产生的任何纠纷负责;
4,本公众号的主体为个人,发表文章纯属个人交流学习行为,文章的观点也属个人观点,与作者曾经任职或者正在任职的公司、其他个人或组织没有任何关系;
5,本公众号文章为个人撰写,错误和疏漏之处在所难免,希望大家指正;
6,本公众号发表的文章依赖各种软件,作者所获取的软件仅供学习交流之用,若有侵权,作者将配合删除;



点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 14

    粉丝
  • 4

    好友
  • 12

    获赞
  • 0

    评论
  • 66

    访问数
关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-23 20:10 , Processed in 0.015723 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部