文档章节

Python-内置数据结构之元组(tuple)

o
 osc_1ee7cxmx
发布于 2018/08/06 21:08
字数 593
阅读 0
收藏 0

一、元组--tuple

  1、元组格式:(1,2) 、(1,2,'s'), (1,) ----一个元素的时候,要补一个逗号

  2、元组的特点:

      有序的元素组成的集合

      一旦定义,就不可被修改(增,删,改),只能查看

  3、元组的定义 初始化

      定义:和list一样

        tuple()  or   tuple(iterable)  or  t = ()  (前两者是工厂方法)

1 t = tuple(range(1,7,2))
2 print(t)
3 t1 = t * 3 
4 print(t,t1)  # (1, 3, 5) (1, 3, 5, 1, 3, 5, 1, 3, 5)

 

  4、对元组的操作:

    除了列表的增,删,改,都可以用,一样的效果,索引等   

  5、命名元组namedtuple:(帮助文档中,有使用例子)

    namedtuple(typename,field_names,verbose=False,rename=False)

      命名元组,返回一个元组的子类,并定义了字段

      field_names 可以是空白符或逗号分隔符的字段的字符串,可以是字段的列表

 1 from collections import namedtuple
 2 Point = namedtuple('_point',['x','y']) # '_point' 是类型名,['x','y']:是字段
 3 p = Point(11,22) # p是一个对象(类似对象,Point类产生一个又一个的对象)
 4 print(p.x) # 11
 5 print(p.y)  # 22
 6 print(p) # _point(x=11, y=22)
 7 
 8 Student = namedtuple('Student','name age') # Point = namedtuple('_point',('x','y'))
 9 tom1 = Student('tom',20)
10 tom1.name # 'tome'
11 tom1.age #  20
12 print(tom1) # Student(name='tom', age=20)

 

  namedtuple的部分原码:  

1 if isinstance(field_names, str):
2         field_names = field_names.replace(',', ' ').split()
3     field_names = list(map(str, field_names))
4     typename = _sys.intern(str(typename))
#

 

  注:

    1写程序,注意的是空间复杂度 和 时间复杂度,所以该少用就得少用,否则效率很低

    2、list:最好不要挪动,找某个元素,替换或者尾部操作是可以的

    3、max(1)  X    max([1])  v       max((2,))   V

    4、初始化一个列表 比 初始化一个元组慢

    5、所谓的不能改不是绝对的!!!!

1 tu = (11, 22, 33, [9, 3], 44,)
2 tu[3][1] = 1
3 print(tu) # (11, 22, 33, [9, 1], 44)

 

 

  扩展:

    map():map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。map后面的参数是一个可迭代对象,执行map时,相当于执行一个for循环.

    字符串的 split():v = test.split('s',2) # 以s分隔,分隔两次,不保留分隔符,以列表形式返回            

1 s = ',abds sda, '
2 l = s.split(',',2)
3 print(l) # ['', 'abds sda', ' ']

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

Openstack 从入门到放弃 - Ussuri release -0701

使用vmware 虚拟机环境搭建测试 OS: CentOS 8 此示例体系结构与最小生产体系结构不同,如下所示: 网络代理驻留在控制器节点上,而不是一个或多个专用网络节点上。 自助服务网络的覆盖(隧道...

osc_icwhzig7
20分钟前
7
0
如何用Nearby Service开发针对附近人群的精准广告推送功能

  当你想找一家餐厅吃饭,却不知道去哪家,这时候手机跳出一条通知,为你自动推送附近优质餐厅的信息,你会点击查看吗?当你还在店内纠结于是否买下一双球鞋时,手机应用给了你发放了老顾客...

osc_7dwwmolq
21分钟前
8
0
vue全局防抖和节流

函数防抖 防抖分为两种: 一种是立即执行:频繁触发事件,第一次触发时执行函数,后面触发不会执行,停止触发,间隔一定时间之后再触发事件,函数才会再次执行 另一种是后执行:频繁...

我心中有猛狗
22分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部