今天主要内容:
1.昨日补充
2.内置函数
3.匿名函数
1.关于生成器如何产生值,有三种方法,
1)生成器调.__next__()
2)用for循环
3)用list(ge)
2.内置函数
2.1 迭代器生成器相关
range() 函数可创建一个整数对象,一般用在for 循环中
next :内部实际使用了__next__方法,返回迭代器的下一个项目
iter():函数用来生成迭代器
2.2 基础类型相关
bool: 用于将给定参数转换为布尔类型,如果没有参数,返回 False。
int: 函数用于将一个字符串或数字转换为整型(这里注意如果是转换字符型的话,那么是把后面小数点去掉)
示例:
f = 1.25 i = int(f) print(i) """ 运行结果是 1 """
float:函数用于将整数和字符串转换成浮点数。
进制转换(3):
bin:将十进制转换成二进制并返回。
oct:将十进制转化成八进制字符串并返回。
hex:将十进制转化成十六进制字符串并返回。
print(bin(10),type(bin(10))) # 0b1010 <class 'str'> print(oct(10),type(oct(10))) # 0o12 <class 'str'> print(hex(10),type(hex(10))) # 0xa <class 'str'>abs :函数返回数字的绝对值。
divmod:计算除数与被除数的结果,返回一个包含商和余数的元组(a // b, a % b)。
round:保留浮点数的小数位数,默认保留整数。关于round取两位数不准确的问题,可以使用
类似下面格式化的输出
float('%.2f' % b)或者
from decimal import Decimals = Decimal('5.000').quantize(Decimal('0.00'))print(s)
pow:求x**y次幂。(三个参数为x**y的结果对z取余)
示例:
tu = divmod(10,3) print(tu) ##这个函数是求两个参数的除数和余数 f = 4.3567 print(round(f,2))###这里是取小数点后两位,注意round的问题 print(pow(2,3)) #求2的3的min
sum :对可迭代对像进行求各计算(可设置初始值)
max:返回可迭代对像的最大值
min:返回可迭代对像的最值
sum 这里要注意的是,可以传入初始值,比如sum(lst,100) 这里要表示的是lst列表里面的值相加后,再加100.
max 和min要注意的是可以传入key值,这个key值可以接授函数赋值,当传入的是函数时max或者min会迭代这个可迭代对像,然后对每一个获取的迭代值传入函数,获取返回值,然后对比返回值,获取最大值,然后返回给当时的key.
示例:
f = [1,2,3] print(sum(f,1000)) lst = [(1,20),(30,2),(20,100)] print(max(f)) print(max(lst,key=lambda x:x[1]))
2.3和数据结构相关
list:将一个可迭代对象转化成列表(如果是字典,默认将key作为列表的元素)。
tuple:将一个可迭代对象转化成元祖(如果是字典,默认将key作为元祖的元素)。
reversed:将一个序列翻转,并返回此翻转序列的迭代器。注意这里返回的是迭代器
slice:构造一个切片对象,用于列表的切片。
示例:
lst = [1,4,90,70,101] for i in reversed(lst): print(i)
lst = [1,4,90,70,101]# for i in reversed(lst):# print(i)s_ob= slice(1,4)print(lst[s_ob])
str:将数据转化成字符串
format:与具体数据相关,用于计算各种小数,精算等。
bytes:用于不同编码之间的转化。注意这里只能由unicode转为utf-8,不能由utf-8转为unicode
示例:
s = "abc中国" s1 = bytes(s,encoding="utf-8") print(s1)
ord:输入字符找该字符编码的位置
chr:输入位置数字找出其对应的字符
ascii:是ascii码中的返回该值,不是就返回/u...
repr:返回一个对象的string形式(原形毕露)。
这个是能显示字符串的双引号,
如下示例:
# %r 原封不动的写出来 # name = 'taibai' # print('我叫%r'%name) # repr 原形毕露 # print(repr('{"name":"alex"}')) # print('{"name":"alex"}') name = 'taibai'
数据集合(3)
dict:创建一个字典。
set:创建一个集合。
frozenset:返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。
相关内置函数(8)
len:返回一个对象中元素的个数。
sorted:对所有可迭代的对象进行排序操作。
s = "136745" f = sorted(s) #sorted最后返回的是列表 print(f) """ 执行结果如下: ['1', '3', '4', '5', '6', '7'] """
enumerate:枚举,返回一个枚举对象。这个主要是返回元组,元组的内容是序号和迭代内容组成.
for i in enumerate([1,2,3],100): #这个用法值得注意,是在序号基础上再加后面的初始值 print(i) """ 运行结果如下: (100, 1) (101, 2) (102, 3) """
all:可迭代对象中,全都是True才是True
any:可迭代对象中,有一个True 就是True
示例如下:
print(all([1,"33",6])) print(any([3,'',"dd"]))
zip 函数用于将可迭代的对像作为参数.将对像中对应元素打包成一个个元组.然后返回由这些元组组成的列表.如果各个迭代器的元素个数不一致,则返回列表长度与最短的对像相同
l = [1,2,3] f = ["a","b","c"] p = zip(f,f) print(p) for i in p: print(i) """ 执行结果如下: <zip object at 0x000000F505093408> ('a', 'a') ('b', 'b') ('c', 'c') """
filter:过滤·。
filter 过滤 通过你的函数,过滤一个可迭代对象,返回的是True示例:
s = filter(lambda x:x == 2,[1,2,3]) for i in s : print(i) """ 执行结果是2 """
map:会根据提供的函数对指定序列做映射。
这个类似于列表表达式的循环模式,
示例如下:
f = map(lambda x:x**2,[1,2,3]) for i in f : print(i)
来源:https://www.cnblogs.com/ahliucong/p/9209781.html