笑谈python基本数据类型 列表list&元组tuple

本文详细介绍了Python中列表和元组的特点与用法,包括列表的动态长度、多种数据类型支持、常用方法如append、extend等,以及元组的不可变性和使用限制。
                                                                            列表

     python中list的写法让我们不经想起java和c中的数组。但python中的列表比数组功能更加强大,主要体现在两个方面:

    1.不需要指定长度,长度动态分配

    2.列表中可以存放各种各样的数据类型

   

    列表是可变的,有序的。列表可以嵌套。


   关于列表的存储方式:这里参考于:

https://www.cnblogs.com/c-x-a/p/8964990.html

  1.如果列表中存储的是同一种数据类型的数据,则列表中元素的地址是连续的,采用顺序表结构存储。可以通过下标进行访问。这种情况下则类似与java、c语言中的数组

 2.如果列表中的数据不是同一种数据类型,此时就不是采用顺序表存储了,而是首先对每个元素分配好空间,空间不一定连续,然后把地址值作为数据存储到另外的空间中,一个内存地址占用四个字节,这个时候内存地址的数据占用的四个地址空间是连续的。

    如下图表示:


list的常用方法:


append(e)//在列表的末尾添加元素,并且一次只能添加一个元素。


如果e是列表、元祖、集合,则把他们作为一个整体加到列表末尾处

注意一个细节:

当企图这样输出时,发现输出结果为none,可以推出append()方法没有返回值



extend(e)//e是有限制的,必须是可迭代的,我们可以通俗地理解为带下标的。int/bool/float就不通过extend()方法添加。

如果e是字符串,那么会循环遍历该字符串,将字符串一个一个字符取出,然后添加到集合中

如果e是列表/元祖,也是循环遍历取出,然后再添加到列表

如果e是集合,则是循环遍历取出集合中的key,然后再添加到列表中


insert(index,e)//在指定位置插入元素



del

pop(index)//通过下标删除

使用pop(index)方法删除时,会得到一个返回值

remove(e)//通过元素删除

通过上面的测试,我们可以推出,使用remove(e)方法删除时,会循环遍历列表,匹配我们传入的参数,并删除第一次出现的位置的元素。如果要删除的元素不存在,则报错。


clear()//清空列表







其他操作:

sort();//无返回值


通过上述操作,我们可以知道,sort()方法对字母排序时是按照ascii表的顺序.中文排序方式未知。

sorted()

sorted()//返回一个排好序的新列表,保存了原来的列表,而sort()不保存原来的列表。


此外:

sorted(e)适用于其他任何数据类型,以列表的形式返回


逆序

reverse()//逆序排列


reversed(e)////返回一个逆序后的新列表,保存了原来的列表,而reverse()不保存原来的列表。

这里存在困惑,个人推测,这个方法,reversed(e)内部调用了类似与java中的toString方法,但没有重写toString(),所以返回的是地址值。


len()/count()/与字符串中用法基本一致,不再赘述。


支持+ *





                                                                                    元组

        元组与list很类似,只不过元组比列表多了许多限制:

        1.元组中的数据必须是不可变类型

        2.元组中的一级元素不允许修改。

        注意事项:当元组中只有一个元素时,需要在元素后面添加一个逗号,否则会被当作运算符使用。

        

       

           对于元祖,我们可以修改他的非一级元素

        

        删除元祖:del(t)


len()/count()与用法字符串基本一致,不再赘述。











      

内容概要:本文档围绕六自由度机械臂的ANN人工神经网络设计展开,涵盖正向与逆向运动学求解、正向动力学控制,并采用拉格朗日-欧拉法推导逆向动力学方程,所有内容均通过Matlab代码实现。同时结合RRT路径规划与B样条优化技术,提升机械臂运动轨迹的合理性与平滑性。文中还涉及多种先进算法与仿真技术的应用,如状态估计中的UKF、AUKF、EKF等滤波方法,以及PINN、INN、CNN-LSTM等神经网络模型在工程问题中的建模与求解,展示了Matlab在机器人控制、智能算法与系统仿真中的强大能力。; 适合人群:具备一定Ma六自由度机械臂ANN人工神经网络设计:正向逆向运动学求解、正向动力学控制、拉格朗日-欧拉法推导逆向动力学方程(Matlab代码实现)tlab编程基础,从事机器人控制、自动化、智能制造、人工智能等相关领域的科研人员及研究生;熟悉运动学、动力学建模或对神经网络在控制系统中应用感兴趣的工程技术人员。; 使用场景及目标:①实现六自由度机械臂的精确运动学与动力学建模;②利用人工神经网络解决传统解析方法难以处理的非线性控制问题;③结合路径规划与轨迹优化提升机械臂作业效率;④掌握基于Matlab的状态估计、数据融合与智能算法仿真方法; 阅读建议:建议结合提供的Matlab代码进行实践操作,重点理解运动学建模与神经网络控制的设计流程,关注算法实现细节与仿真结果分析,同时参考文中提及的多种优化与估计方法拓展研究思路。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值