python中将元组转化为列表,python中列表转元组
一、引言大家都知道,Python数据类型中有两个对象:tuple和list list。
他们的写法和用法很像,傻傻的,分不清。也许有些同学会疯狂地去网上找两者的区别,但找到的无非是以下几种说法:
List是可变对象,tuple是不可变对象!
由于tuple是不可变的,所以使用tuple可以让代码更安全!等等.
但是元组有什么用呢?最后,我还是不知道。
第二,tuple实际上在很多“高级”编程语言中都是没有tuple的,比如Java、C、C#等。但是由于元组的灵活性和方便性,最后还是加入了这些编程语言。而很多年轻的编程语言,比如Python和Scala,从一开始就内置了元组类型。
元组之所以如此受欢迎,最重要的原因是其语法灵活方便,提高了编程体验。最大的一个特点就是函数可以返回多个值,这是很常见的。
1. 函数返回(return)多个值
函数返回多个值?是的,你没听错。函数可以返回多个值。比如:
很简单。这是一个返回坐标值(x,y)的函数。我们同时得到x和y的多个值。
但是这和tuple有什么关系呢?
其实有一种错觉,Python函数返回的值本质上还是单值。请看下面的代码:
从打印结果可以看出,这里的返回值是一个元组!从语法上讲,返回一个元组时可以省略括号,而多个变量可以同时接收一个元组,并根据其位置将其赋给相应的值。
所以Python的函数在返回多个值的时候,实际上返回的是一个元组。是不是突然觉得tuple帮了大忙,更容易得到结果?
2. tuple 不可变的好处
与list相比,tuple是不可变的,这使得它可以作为dict的键,或者被扔到集合中,而list则不能。
元组放弃了元素的添加和删除(内存结构的设计变得更加简洁),换来的是性能的提升:创建元组比链表快,存储空间占用比链表少。于是就有了“能用tuple的地方,不需要list”的说法。
多线程的时候,tuple不需要加锁,不用担心安全性,写起来也轻松很多。
2.元组最后还能修改吗?1、创建和访问一个元组如果创建空元组,就用括号;
如果元组中只有一个要创建的元素,则在它后面添加一个逗号,。
temp=()type(temp)class tuple temp=(1,)type(temp)class tuple temp=(1)type(temp)class int 8 *(8)64 8 *(8,)(8,8,8,8
2、更新和删除元组
直接在同一个元组上更新是不可行的,但是可以通过复制已有的元组片段构造一个新的元组来解决。
通过切片将元组拆分成两部分,然后使用连接操作符()将其合并成一个新的元组,最后将原来的变量名(temp)指向连接的新元组。这里需要注意的是,逗号是必须的,圆括号也是!
_ _ author _ _= administrator #-*-编码:UTF-8-*-temp=(龙猫,泰迪,丁当猫)temp=temp[:2](小猪佩奇,)temp[2:]print(temp)丁猫)进程结束,退出代码0 删除元组中的元素:对于元组不可变的原则,不能单独删除一个元素。当然,可以通过切片来更新元组,间接删除一个元素。
_ _ author _ _= administrator #-*-编码:UTF-8-*-temp=(龙猫,泰迪,小猪佩奇,丁当猫)temp=temp[:2]temp[3:]print(temp) (叮叮猫)进程结束退出代码0 日常生活中很少使用del删除整个元组,因为Python的回收机制会在不再使用这个元组时自动删除它。
__author__=管理员 # -*-编码:utf-8 -*-temp=(龙猫, 泰迪, 小猪佩奇, 叮当猫)del tempprint(temp) 回溯(最近一次调用last):File F:/python _ progrom/test。py ,第七行,在模块打印(临时)名称中错误:未定义名称“温度”进程结束,退出代码为0 最后成员关系操作符在和不在也可以直接应用在元组上,这跟列表是一样的。
__author__=管理员 # -*-编码:utf-8 -*-temp=(龙猫, 泰迪, 小猪佩奇, 叮当猫)a=泰迪c=(泰迪, 小猪佩奇)b=a in tempd=c in tempf=c not in temp print(b)print(d)print(f) true false true process结束,退出代码为0
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。