tcl/tk参考——列表操作lsearch
.
.
名称
lsearch - 在列表中寻找特定元素
语法
lsearch ?options? list pattern
描述
这个命令寻找list中与pattern匹配的元素。如果匹配到了返回第一次找到这个元素的索引(除非指定了-all或-inline),如果没有匹配到返回-1。可选变元指出了列表的元素怎样去匹配pattern,可选项如下:
匹配风格可选项
默认的匹配风格为-glob,如果给出了多个匹配风格,那么最后给出的匹配风格有效。
- -exact
- pattern是字符串并且必须严格匹配每一个 list元素。
- -glob
- pattern是通配风格匹配每一个列表元素,与 string match命令类似。
- -regexp
- pattern被当作一个正则表达式来匹配列表中的每一个元素,与 re_syntax命令类似。
- -sorted
- 列表元素被排序,如果指定了这个可选项, lsearch将会使用更加有效的查询算法去查列表。如果没有指定其它的可选项, list将被排列成升序并且包含ASCII码。这个可选项与 -glob和 -regexp互斥,当指定 了-all或 -not时与 -exact非常象。
一般修饰可选项
这些可选项可以在任何一种匹配风格中给出。
- -all
- 返回一个列表,列表的元素为所有匹配到的索引,返回的索引按照数字顺序排列,如果同时指定了 -inline返回数值,数值的顺序就是在列表中的顺序。
- -inline
- 返回匹配到的第一个元素。如果 -all也指定了,则返回一个列表,列表的元素为所有匹配到的数值。
- -not
- 与匹配相反,返回第一个不匹配的数值的索引。
- -start index
- 从列表的 index个索引开始搜索。
内容描述可选项
描述如何去解释在列表中寻找到的元素,只有当-exact和-sorted指定时才有效。如果给出了多个可选项,那么最后给出的可选项有效。默认为-ascii。
- -ascii
- 列表元素作为Unicode字符串来检查。
- -dictionary
- 列表元素在比较时使用字典关系(查看 lsort以获取详细描述),只有当 -sorted可选项指定时才有有效。
- -integer
- 列表中的元素被当作整数来处理。
- -nocase
- 忽略大小写。与 -dictionary、 -integer和 -real搭配无效。
- -real
- 列表中的元素被当作浮点数来处理。
列表排序可选项
这个可选项指定了列表如何排序,只有指定了-sorted时才有效。如果给出了多个可选项,那么最后给出的可选项有效。
- -decreasing
- 列表元素为降序排列,只有指定了 -sorted时才有效。
- -increasing
- 列表元素为升序排列,只有指定了 -sorted时才有效。
内嵌列表可选项
这些可选项被用来寻找子列表,可以与任何其它可选项一起使用。
- -index indexList
- 这个可选项寻找内嵌的列表, indexList变元必须给出一个索引列表(与 lindex和 lset类似), indexList给出的索引列表在 list中必须存在对应的索引,否则会出错。
- -subindices
- 这个可选项只返回寻找到的子列表元素,必须和 -index配合使用。
示例
基本搜索:
lsearch {a b c d e} c
→ 2
lsearch -all {a b c a b c} c
→ 2 5
过滤列表:
lsearch -inline {a20 b35 c47} b*
→ b35
lsearch -inline -not {a20 b35 c47} b*
→ a20
lsearch -all -inline -not {a20 b35 c47} b*
→ a20 c47
lsearch -all -not {a20 b35 c47} b*
→ 0 2
甚至可以做切除操作:
lsearch -all -inline -not -exact {a b c a d e a f g a} a
→ b c d e f g
搜索从半途开始:
lsearch -start 3 {a b c a b c} c
→ 5
搜索子列表中的元素:
lsearch -index 1 -all -inline {{a abc} {b bcd} {c cde}} *bc*
→ {a abc} {b bcd}
tcl/tk参考——列表操作lsearch相关推荐
- tcl/tk参考——列表操作lappend
. . 名称 lappend - 将元素添加到列表末尾 语法 lappend varName ?value value value ...? 描述 这个命令把varName当作列表来处理,把每个val ...
- tcl/tk参考——列表操作llength
. . 名称 llength - 计算列表的元素个数 语法 llength list 描述 将list当作一个列表来处理并返回一个十进制数的字符串表示列表中元素的个数. 示例 结果是列表元素的个数: ...
- tcl/tk参考——tcl内建命令
TCL内建命令 命令更新中,有链接的命令可以直接点击查看 字符串操作 append - 在变量后添加变量 binary - 从二进制字符串中插入或释放数值 format - 使用sprintf的风格格 ...
- python:tkinter —— Tcl/Tk 的 Python 接口
python:tkinter -- Tcl/Tk 的 Python 接口 架构 Tkinter 模块 Tkinter 拾遗 Hello World 程序 重要的 Tk 概念 了解 Tkinter 如何 ...
- tkinter —— Tcl/Tk 的 Python 接口
注:PYTHON最新版本3.12.0a3 源代码: Lib/tkinter/__init__.py tkinter 包 ("Tk 接口") 是针对 Tcl/Tk GUI 工具包的标 ...
- Linux shell 交互式编程、TCL/TK 和 Expect 编译与安装、expect 编程
以下文章资源都来源于网络,保留原作者的一切权利: Expect 被用来进行一些需要进行交互是shell 编程的,比如完成ssh 自动登录,就可以使用 expect 编程来实现 1,获取原始的tcl源码 ...
- Tcl/Tk的一些笔记
Tcl/Tk的一些笔记 快速图形界面开发语言Tcl/Tk 0.前言.在unix like系统下,有没有像VB一样的快速图象界面开发工 具呢?很多人大概马上会想到Kylix,基于Java的一些图形开发工 ...
- Tcl/Tk入门(中)
编写Tcl脚本之前,必须学会两件事: 1).必须学会Tcl语法,其内容是决定如何解析命令规则: 2).必须掌握在脚本中使用的独立命令(Tcl提供了近百条内建命令,Tk提供几十条). 第一部分 Tcl语 ...
- Tcl/Tk 快速入门
2019独角兽企业重金招聘Python工程师标准>>> 关于本教程 谁应该学习本教程? 本教程是针对那些具有一种或多种编程或脚本语言经验的人员设计的.可以在几种平台(包括 Win32 ...
最新文章
- 无人驾驶汽车系统入门——基于Frenet优化轨迹的无人车动作规划方法
- Linux的三种特殊权限
- 【转】awk 里的substr函数用法举例
- python 多线程讲解(如何实现多线程,递归锁,互斥锁,信号量,事件等)
- yarn集群启动时,并不自动启动resoucemanager的原因
- tm是什么域名_天猫入驻条件门槛是什么意思?企业入驻天猫详细解析
- 测试开发必备技能-Jmeter二次开发
- Java基础之StringBuffer和StringBuilder的区别
- 争锋职考职称计算机,PVP攻略 | 新秀职业的争锋天下?
- mysql关于时间的面试题_关于面试中的mysql试题1
- Java设计模式------单例模式
- 网页爬虫-八爪鱼Xpath自定义数字翻页
- 二次函数回归方程_高三专题||【导数专题四】利用导数研究函数图形专项习题...
- android平板游戏隐藏功能,平板电脑怎么隐藏游戏
- IP地址的规划和设计方法(三)
- 【OpenGL ES】立方体贴图(6张图)
- UnRaid硬件直通的n种正确姿势
- 【FinE】统计与计量指标计算(Matlab)
- Mac安装指定版本的node
- 智慧海派跟鸿蒙系统,上海百余家文旅场馆点亮“海派夜经济”
热门文章
- 利用python的爬虫技术爬取百度贴吧的帖子
- 福特中国启动“福特更美好的世界“公益项目
- html语言怎么换下一行,表格中打字怎么换到下一行
- ubuntu安装pangolin
- 成都物韵电子商务有限公司电商代运营公司如何打造爆款?
- 不要去打扰别人的幸福
- Android 报错Android - Performing stop of activity that is not resumed
- SSIS之Foreach循环容器(文件枚举器)遍历文件(关键点 详细步骤 图文讲解)
- (数学)POJ - 1365 Prime Land
- mmorpg小地图系统制作