码迷,mamicode.com
首页 > 其他好文 > 详细

数据类型扩展

时间:2021-03-10 13:26:57      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:tor   set   列表   res   字典   throw   创建生成器   基础数据类型   bsp   

一、基础数据类型

数值(int、float)

序列(list、str、tuple)

散列(set、dict)

可迭代对象(序列、散列)

二、命名元组

from collections import namedtuple
student = namedtuple(‘Students‘, (‘name‘, ‘age‘, ‘skill‘))
stu = student(‘幂次方‘, 18, ‘python自动化‘)
stu[1] ==stu.age
判断是否是该数据类型:print(isinstance(stu, tuple))

三、推导式

三目运算:

res = True if  条件 else False
if number > 60: print("大于") else: print(‘小于‘)
res = True if number > 60 else False

列表推导式:

需求,生成 [py1,,,,,py20]
li = [] for i in range(1,21): li.append(‘py{}‘.format(i))
li = [‘py{}‘.format(i) for i in range(1,21)]

集合推导式:

se = {‘py{}‘.format(i) for i in range(1,21)}

字典推导式:

dic = {‘name{}‘.format(i): i * 100 for i in range(1, 21)}

可迭代对象和迭代器:

可迭代对象:能够使用for遍历的数据都是可迭代对象

迭代对象内部实现了迭代协议(这个对象拥有__iter__这个方法)

迭代器:迭代器也是可迭代对象的一种

迭代器: 不仅仅实现了__iter__这个方法,还实现了__next__方法

迭代对象转换为迭代器:迭代器 = iter(可迭代对象)

迭代器:可以使用内置函数next进行迭代

li = [11, 22, 33, 44]

li_tor = iter(li)

# next函数
print(next(li_tor))
print(next(li_tor))

注意点:当使用next获取完迭代器中所有的元素之后,再次使用next进行迭代,会抛出迭代器停止的异常

生成器(相当于元组推导式)(特殊的迭代器):

创建生成器的两种方式

生成器表达式:tu = (i for i in range(10))

生成器函数:只要函数中使用了yield这个关键字,那么这个函数就是一个生成器函数

def gen():
    for i in range(10):
        yield {‘a‘:i}

三种方法:

生成器的send方法:生成器的send方法可以和生成器内部进行数据交互、调用send方法执行要执行一次next

close:关闭生成器 g.close()

throw:往生成器内部发送一个异常 、主动发送一个异常到生成器中

 

 

数据类型扩展

标签:tor   set   列表   res   字典   throw   创建生成器   基础数据类型   bsp   

原文地址:https://www.cnblogs.com/micifang/p/14509155.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!