基础学习之第十五天(内置函数和匿名函数)

查看内置属性dir()
print(dir()) # 打印dir的内置属性
print(dir([]))  # 打印列表的内置属性
迭代器生成器相关range,next,iter
range() # 自动生成一个列表
a=iter('asd') # 把迭代对象转换成迭代器
 print(next(a))
print(next(a))  # 用next把迭代器里面的内容一个一个取出来
基础数据类型相关bool,int,float,complex
>>>complex(1, 2)
(1 + 2j)
 
>>> complex(1)    # 数字
(1 + 0j)
 
>>> complex("1")  # 当做字符串处理
(1 + 0j)
 
# 注意:这个地方在"+"号两边不能有空格,也就是不能写成"1 + 2j",应该是"1+2j",否则会报错
>>> complex("1+2j")
(1 + 2j)

进制转换bin,oct,hex

print(bin(10),type(bin(10)))    # 十进制转换成二进制字符串并返回,
print(oct(10),type(oct(10)))    # 十进制转换成八进制字符串并返回
print(hex(10),type(hex(10)))    # 将十进制转换成十六进制字符串并返回
数学运算

abs:函数返回数字的绝对值。

divmod:计算除数与被除数的结果,返回一个包含商和余数的元组(a // b, a % b)。

round:保留浮点数的小数位数,默认保留整数。

pow:求x**y次幂。(三个参数为x**y的结果对z取余)

print(abs(-6))  #返回这个数的绝对值
print(divmod(9,6))  # 计算除数与被除数的结果,返回一个包含商和余数的元组(a//b,a%b)
print(round(3.999,2))   #保留浮点数的小数位数,默认保留整数,四舍五入
print(pow(6,6,7))   # 3个参数,1**2的次幂,算好之后再对参数3的取余

sum:对可迭代对象进行求和计算(可设置初始值)。

min:返回可迭代对象的最小值(可加key,key为函数名,通过函数的规则,返回最小值)。

max:返回可迭代对象的最大值(可加key,key为函数名,通过函数的规则,返回最大值)。

 
print(sum([1,2,3],10))  # 计算所有数的和,参数1是要算的可迭代对象,参数2是计算的起始位置
print(min([1,2,3])) #返回此序列的最小值
print(min([1,6,-0,-6],key=abs)) #取绝对值的最小数
dic = {'add':12,'ass':35}    # 取这个字典所有value的最小的那个print(max(dic,key=lambda x:dic[x]))
列表和元祖

list:将一个可迭代对象转化成列表(如果是字典,默认将key作为列表的元素)。

tuple:将一个可迭代对象转化成元祖(如果是字典,默认将key作为元祖的元素)。

扫描二维码关注公众号,回复: 1681792 查看本文章
print(tuple({'ass':123,'add':456})) # 他们都是取的是字典key的值
print(list({'ass':123,'add':456}))

reversed:将一个序列翻转,并返回此翻转序列的迭代器。

slice:构造一个切片对象,用于列表的切片。

ite = reversed([1,2,3,4,5,6])   # 将一个序列翻转,并返回翻转序列的迭代器
print(list(ite))
li = [1,2,3,4,56,78,9,6,3,2,2,2,2,2]
sli_obj=slice(-3)
print(li[sli_obj])

sli_obj=slice(0,7,3) # 就类似于一个固定的切割方法
print(li[sli_obj])

字符串相关 

str:将数据转化成字符串。

format:与具体数据相关,用于计算各种小数,精算等。

print(format(3,'b'))    # 转换为二进制
print(format(6400,'c'))   # 转换为unicode对应的字符
print(format(11,'d'))   # 转换为十进制
print(format(11,'o'))   # 转换为8进制
print(format(11,'x') )   #转换为16进制,小写字母表示
print(format(11,'X'))   #转换为16进制,大写字母表示
print(format(11,'n'))   # 和d一样
print(format(11))   # 默认也和d一样

bytes:用于不同编码之间的转化

k =bytes('',encoding='utf-16') # 可以转换成任意编码的bytes
print(k)
print(k.decode('utf-16')) # encode和decode是配套使用

bytearry:返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256。

ret = bytearray('alex',encoding='utf-8')
print(id(ret))
print(ret)
print(ret[0])
ret[0] = 65
print(ret)
print(id(ret))

memoryview:没什么用

ret = memoryview(bytes('你好',encoding='utf-8'))
print(len(ret))
print(ret)
print(bytes(ret[:3]).decode('utf-8'))
print(bytes(ret[3:]).decode('utf-8'))

ord:输入字符找该字符编码的位置

chr:输入位置数字找出其对应的字符

ascii:是ascii码中的返回该值,不是就返回/u...

print(ord('a'))
print(ord('')) #输入字符找到该字符编码的位置

print(chr(97))  # 输入未知数字找到对应的字符
print(chr(20018))

print(ascii('a'))   # 是ascii码中的返回值,不是返回/u
print(ascii(''))

repr:返回一个对象的string形式(原形毕露)

print(repr('{1,2}'))  # 里面是什么样还返回什么样

数据集合 

    dict:创建一个字典。

    set:创建一个集合。

    frozenset:返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。

   相关内置函数(8)

     len:返回一个对象中元素的个数。

     sorted:对所有可迭代的对象进行排序操作。

 
li = [1,4,-5,6,7,-8,9]
print(sorted(li,reverse=True)) # 排序降序
print(sorted(li)) # 排序升序 
 

enumerate:枚举,返回一个枚举对象

print (list( enumerate([1,2,3],100))) # 返回这个列表的每个值和它的索引,你也可以设置它索引的起始位置

all:可迭代对象中,全都是True才是True

any:可迭代对象中,有一个True 就是True

print(all((1,2,6))) # all当所有为True才为真和and相似
print(any([0,'',[],{},(),({}),1]))#当一个为真都为真

zip:函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。

li1= "1234"
li2= "1234"
li3= "1234"
print(list(zip(li1,li2,li3))) # 用zip返回一个迭代器,他是竖着切下来的,按照最短的那个结束

filter:过滤·

lst = filter(lambda x:x%3==0,[1,2,3,4,5])# 和筛选式列表一样
print(set(lst))

map:他就和循环性列表推导式一样

print(list(map(lambda x : x**3,(1,2,3))))

匿名函数

函数名 = lambda 参数 :返回值

参数可以有多个,用逗号隔开
匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
返回值和正常的函数一样可以是任意数据类型
dic={'k1':10,'k2':100,'k3':30}
print(max(dic))
print(dic[max(dic,key=lambda k:dic[k])])
 
 
 

猜你喜欢

转载自www.cnblogs.com/chunqiuyu/p/9210165.html