第五篇:list

Rust UI开发(五):iced中如何进行页面布局(pick_list的使用)?(串口调试助手) iced是一个跨平台的GUI库,用于为rust语言程序构建UI界面。这是一个系列博文,本文是第五篇,前四篇链接:1、2、3、4、本篇是系列第五篇,本篇主要说明如何制作关于“串口调试助手”的界面布局,包括菜单栏的创建、UI主界面picklist的使用、以及如何排布。实际效果预览:界面分为两个部分,一个是菜单栏,暂时设置了四个主菜单项:1、文件:新建、打开、保存、关闭2、通讯:获取端口、连接、断开、参数3、工具:CRC16、字符转换。 阅读详情

这一篇主要讲list。下一篇讲dictionary。

这两个数据类型在python中被频繁使用。

 

1.list概况

list故名思义,提供一个动态的列表容器,相对于其它语言,python中的list非常强大,它可以容纳不同的数据类型,嵌套list等。

>>> [1, [1, 2], [1, 2, [3, 4]], 'hello', {'这也行?'}]
[1, [1, 2], [1, 2, [3, 4]], 'hello', set(['\xd5\xe2\xd2\xb2\xd0\xd0?'])]

对于嵌套的list,可以通过多维下标访问:

>>> al = [1, [1, 2], [1, 2, [3, 4]], 'hello', {'这也行?'}]
>>> al[2][2][0]
3
>>> al[4]
set(['\xd5\xe2\xd2\xb2\xd0\xd0?'])


这样一来list就可以当作矩阵来用啦:

>>> A = [[1, 2, 3], [2, 3, 4], [3, 4, 5]]
>>> A
[[1, 2, 3], [2, 3, 4], [3, 4, 5]]
>>> [tmp[1] for tmp in A]
[2, 3, 4]

 

2.list方法

可以通过dir()方法查看list对象拥有的方法。list的常用方法如下:

>>> l1 = [1, 2]
>>> l2 = [9, 10]
>>> l3 =['hello']
>>> l1+l2 #加扩展
[1, 2, 9, 10]
>>> l2*3 #乘扩展
[9, 10, 9, 10, 9, 10]
>>> for x in l2: #遍历
	print(x)

	
9
10
>>> 3 in l2 #判断是否存在
False
>>> 9 in l2
True
>>> l2.append(11) #尾部添加元素
>>> l2
[9, 10, 11]
>>> l2.extend(l1) #尾部扩展list
>>> l2
[9, 10, 11, 1, 2]
>>> l2.extend([2, 3])
>>> l2
[9, 10, 11, 1, 2, 2, 3]
>>> l2.insert(2, 5) #指定位置插入
>>> l2
[9, 10, 5, 11, 1, 2, 2, 3]
>>> l2.insert(0, 2)
>>> l2
[2, 9, 10, 5, 11, 1, 2, 2, 3]
>>> l2.index(0) #没有这个元素

Traceback (most recent call last):
  File "<pyshell#49>", line 1, in <module>
    l2.index(0)
ValueError: 0 is not in list
>>> l2.index(2) #返回元素第一个位置
0
>>> l2.sort() #由大到小排序
>>> l2
[1, 2, 2, 2, 3, 5, 9, 10, 11]
>>> l2.reverse() #反转
>>> l2
[11, 10, 9, 5, 3, 2, 2, 2, 1]
>>> del l2[0] #删除指定位置元素
>>> l2
[10, 9, 5, 3, 2, 2, 2, 1]
>>> del l2[0:2]
>>> l2
[5, 3, 2, 2, 2, 1]
>>> l2.pop()
1
>>> l2
[5, 3, 2, 2, 2]
>>> l2.remove(2)
>>> l2
[5, 3, 2, 2]
>>> l2[2:] = []
>>> l2
[5, 3]
>>> l2[1:2] = [2, 3, 4]
>>> l2
[5, 2, 3, 4]
>>> [x**2 for x in range(5)]
[0, 1, 4, 9, 16]
>>> range(10) #index生成器
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]


3.借助循环操作list的技巧

>>> x = ['hello', 'spam', 'SPAM']
>>> [i*3 for i in x]
['hellohellohello', 'spamspamspam', 'SPAMSPAMSPAM']


4.list转换

list与string互转:

>>> str = 'hello'
>>> list(str)
['h', 'e', 'l', 'l', 'o']
>>> list = ['h', 'e', 'l', 'l', 'o']
>>> str = ''.join(list)
>>> str
'hello'

通过list函数,可以实现str到list的转换,不过转换强制以一个字符为单位。

通过string的join函数,可以实现list到string的转换。但是要注意,此时list不能有非字符的元素,如list=[1, 2] 就不能被转换。

 

list与tuple互转:

>>> list((1, 2, 3))
[1, 2, 3]
>>> tuple([1, 2, 3])
(1, 2, 3)


list与dictionary互转:

>>> ll = [('good', 1), ('bad', 2)]
>>> dict(ll) #list转dictionary
{'bad': 2, 'good': 1}
>>> dic = dict(ll)
>>> list(dic) #dictionary转list
['bad', 'good']

 

end

 

CSS入门-第五篇:CSS布局模式与列表样式 去除默认样式使用可以去除列表的默认项目符号或编号。例如:ul, ol {自定义样式去除默认样式后,可以通过其他 CSS 属性,如paddingmarginborder等来创建自定义样式。例如,创建一个带有边框和背景色的导航菜单列表:ul.nav {margin: 0;padding: 0; 阅读详情

相关推荐

服务器被攻击植入挖矿病毒,CPU占用高问题排查处理(.systemd-service.sh)

客户服务器遭攻击,部署的应用服务经常性被停止,服务器CPU占用居高不下,top查看如下: 可以看到第一个bash任务,占用cpu近400%,非正常的应用程序和脚本任务,多半是被植入了木马信息。 查看该进程的符号连接,发现已经是被删除的状态 /usr/bin/-bash (deleted),无法查看其启动程序的信息 查看定时任务:cat /etc/crontab,发现都是正常的应用程序定时脚本 又用 crontab -l 查看了一下,发现了异常定时任务如下,同top里的异常任务一致...

gottst0113的博客 2120

第五篇:Redis 为什么不用链表保存 List?QuickList 到底是什么?

很多人记住了一句话:Redis List 底层是链表。但真正理解 Redis 的人,会知道这只是历史。LinkedList↓ZipList↓QuickList↓每一次升级,都不是推倒重来。内存占用、CPU Cache、插入效率、遍历性能之间的最佳平衡。这也是 Redis 能一直保持高性能的重要原因。《Redis String 为什么不是 String?SDS 到底解决了什么问题?《Redis 为什么使用跳表,而不是红黑树?如果这篇文章让你第一次知道Redis List 早就不是链表了。

u014789877的博客 514

【遥感数字图像处理(朱文泉)】第一章 数字图像基础

关于图像的定义、类型、模拟图像和数字图像

甜子yu的博客 4404

Java入门第五篇:Java集合框架的Collection、List、Set、Map接口

【java的集合框架】 Collection:       1.List         ①ArrayList         ②LinkedList       2.set         ①HashSet         ②LinkedHashSet         ③TreeSet Map:        1.HashMap       2.LinkedHash...

weixin_34049948的博客 95

[小技巧] 如何复制知乎电子书中的文字和图片

文章目录一、背景二、复制文字1.最简单的方法(适合短小文字)2. 进阶方法(适合大段文字)三、复制图片四、注意事项 一、背景 有时候希望从书中摘录一部分文字作为笔记,但是知乎电子书阅读时候是禁止copy的,要么手打,要么OCR,给学习带来了一些不便。 审查元素后发现,知乎电子书是把文字分成一段一段的,试图F12直接copy不太方便。 本问将以谷歌Chrome浏览器为例,给出复制小技巧。 二、复制文字 1.最简单的方法(适合短小文字) 选中你需要的文字,左键单击不放,直接拖到地址栏。 然后可以从地址栏中

江南蜡笔小新 9246

【AI生成】市面上主流自组网厂家的技术及市场研究

经过对全球自组网产业技术特征与市场格局的系统分析,本文得出以下核心结论:技术演进呈现智能化与融合化双轨路径 当前自组网技术创新已突破传统组网架构局限,形成"协议优化-架构创新-场景适配"的递进式发展路径。国际厂商聚焦智能算法应用,如Silvus采用深度学习实现动态拓扑优化,传输时延较传统方案降低37%;国内企业则侧重异构网络融合,中国移动设计院提出的5G LAN架构使工业场景通信可靠性提升至99.99%。

qq_31310977的博客 1697

【OpenCV入门指南】第五篇 轮廓检测 上

【OpenCV入门指南】第五篇 轮廓检测 上

qq_43678306的博客 197

AI上推荐 之 AutoInt模型(Transformer开始玩特征交互)

1. 写在前面 这段时间做优化模型的事情,正好和特征交互有关系,这个也是推荐系统里面一直探索的一个方向,从浅层模型的FM, FFM, HOFM, FwFM到深层模型的DNN, PNN, NFM, AFM, DeepFM, DCN, xDeepFM, FiBiNet等,而这次正好借着这次机会, 多看一些有关于特征交叉方向的模型paper, 把一些新的模型或者较为前沿的思想融入进来。 上一篇的FiBinet模型就是在特征交互上一个非常有意思的探索, 通过SENET动态选择有用的交互特征, 然后再用一个双线性交互

Miracle8070 5724

容器与迭代器,C实现《第五篇,list实现容器》

前言 上一篇博文记录了使用vector来实现容器,这篇将会介绍使用双向链表list来实现容器。 list 双向链表定义如下: typedef struct _list_node list_node_t; struct _list_node { /* 数据节点的data,要放在首段,否则会出现灾难性后果 */ type_value_t data; list_node_t* p...

weixin_39527684的博客 211

ncode控件使用总结

数据格式txt转s3t #HEADER #TITLES Absolute_Time,COG_Ax,COG_Ay,COG_Az,LF_SPINDLE_AZ #UNITS ,g,g,g,g, #DATATYPES Double,Float,Float,Float,Float #DATA 2. 导入s3t数据 3. 输入数据控件 直接拖入数据源或者添加控件数据 4.

技术联盟 2006

华为OD机试 - 去除多余空格(Python/JS/C/C++ 2024 E卷 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。去除文本多余空格,但不去除配对单引号之间的多余空格。给出关键词的起始和结束下标,去除多余空格后刷新关键词的起始和结束下标。条件约束:输入为两行字符串:第一行:待去除多余空格的文本,用例保证如果有单引号,则单引号成对出现,且单引号可能有多对。 第二

学Java,找哪吒 1216

java list 排除_机械狗的Java之路——第五篇

“如入玄学之境。”第五篇,近十天知识清单:Day 417月20日,第41天课程内容:1.Maven:介绍,配置(环境变量、setting配置),Eclipse创建maven工程,maven常用指令,仓库(本地、中央、镜像)2.依赖:依赖坐标,依赖传递、继承、排除,依赖版本统一控制,jar包冲突问题的解决Day 427月21日,第42天课程内容:1.Maven聚合:工程拆分,子项目相互依赖...

weixin_33099015的博客 172

【局部规划模块轨迹优化算法】Teb_planner规划算法

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对****做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容由于ROS中的局部路径规划器比较老了,所以我推荐大家使用比较新的局部路径规划器teb_local_planner。teb_local_planner是基于弹性时间带碰撞约束的算法,算法将动态障碍物、运行时效、路径平滑性等约束做综合考虑,在复杂环境下有更优秀的表现。

qq_35635374的博客 951

SpringBoot第五篇:整合Mybatis

SpringBoot第五篇:整合Mybatis 作者:追梦1819 原文:https://blog.youkuaiyun.com/weixin_39759846/article/details/90237202 版权声明:本文为博主原创文章,转载请附上博文链接! 引言   ORM框架有很多,比如Mybatis、hibernate、JPA、JDBCTemplate等,各自有各自的优点。Mybatis...

追梦1819 625

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

WanAndroid(鸿蒙版)开发的第五篇

WanAndroid(鸿蒙版)开发的第五篇:实现导航模块功能效果

Abner_Crazy的博客 731

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【C++闯关笔记】STL:list 的学习和使用

本文介绍了C++标准库中的list容器,重点阐述了其作为双向链表的特性及优势。文章首先解释了list的引入背景(解决vector中间插入/删除效率低的问题),并通过火车比喻形象说明其结构特点。接着详细讲解了list的使用方法,包括头文件包含、声明初始化、常用接口(增删查改)及迭代器使用注意事项。最后深入剖析了list的模拟实现过程,展示了节点结构、迭代器设计、核心成员函数等关键代码实现。全文通过理论讲解与代码实践相结合的方式,帮助读者全面理解list容器的工作原理和适用场景。

Kaisir777的博客 842

第五篇 STL-array

C++中的array是固定长度数组容器,属于C语言原生数组的安全升级版。其核心特点是长度固定不变,创建时指定长度后无法动态增删元素。相比其他容器,array具有最快的访问速度,支持下标随机访问,语法简单且比原生数组更安全(如at()函数可检测越界)。使用时需注意:必须包含<array>头文件,声明时需同时指定元素类型和固定长度(如array<int,5>)。主要操作包括初始化、下标访问和修改元素,但不支持push_back等动态操作。与vector、deque、list相比,arra

qq_40685088的博客 729

flask 第五篇

需求: 1. 用户名: oldboy 密码: oldboy123 2. 用户登录成功之后跳转到列表页面 3. 失败有消息提示,重新登录 4.点击学生名称之后,可以看到学生的详细信息 后端: 1 from flask import Flask 2 from flask import request 3 from flask import render_templa...

weixin_30418341的博客 74

Java基础知识总结(第八篇):集合:Collection(List、Set)、Map、Collections 工具类

Java基础知识总结(第八篇):集合:Collection(List、Set)、Map、Collections 工具类

2301_76144723的博客 2553

第五篇 容器

范式 泛型的本质就是“数据类型的参数化”。 我们可以把“泛型”理解为数据类型的一个占位符(形式参数),即告诉编译器,在调用泛型时必须传入实际类型。 泛型 <> 使用了泛型的集合中,遍历时不必进行强制类型转换,jDK提供了支持泛型的编译器,将运行时的类型检查提前到了编译时执行,提高了代码可读性和安全性。 容器中使用的范式 List<String> list = new ArrayList<String>(); Set<Man> mans = n

qq_41315339的博客 163

【初阶与进阶C++详解】第十篇:list(list接口介绍和使用+list模拟实现+反向迭代器和迭代器适配)

list是一个带头的双向循环链表。使用记得包含头文件。

YQ20210216的博客 1158

Unity GC 系列教程第五篇:高级 GC 内核

本文是Unity GC优化系列教程的完结篇,重点介绍高级内存管理技术。首先探讨ScriptableObject如何通过数据与逻辑分离减少GC压力,并分析静态数据的使用注意事项。接着解析IL2CPP对GC性能的间接提升作用。最后介绍C# Job System、Burst Compiler和Native Container等高性能计算技术,这些不仅能避免GC分配,还能实现并行计算带来性能飞跃。文章还展望了.NET和Unity引擎在GC优化方面的未来发展。

qq_46348216的博客 1868

【Spring进阶系列丨第五篇】详解Spring中的依赖注入

​ 曾在第一章提到过,IoC和DI其实说的是一个意思,可以这么说:==IoC是一种思想,DI是对这种思想的一种具体实现== - **依赖关系的管理** ​ 以后都交给spring来维护,在当前类需要用到其他类的对象,由spring为我们提供,我们只需要在配置文件中说明。 - **依赖关系的维护** ​ 就称之为依赖注入。

陈橘又青的博客 1万+

Java基础知识第五篇

count=2map.put(a, 2) map={a=2,b=1,c=1}//中间插入的数据是:[张三, 23.4, 李四, true, 男, 张三]map={a=1,b=1,c=1}* 循环第五次: map.containsKey(a) true map={a=2,b=2,c=1}* 循环第6次: map.containsKey(a) true map={a=2,b=2,c=2}* 循环第7次: map.containsKey(a) true map={a=3,b=3,c=2}

ybe813的博客 1035
上一篇: 第四篇:strings
下一篇: 第六篇:dictionary
未雨
博客等级 码龄14年 4粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值