day7_内置函数

print(isinstance('nba',str)) # 返回True或False

通过collections模块的Iterable类型判断一个对象是否是可迭代对象

from collections import Iterable

print(isinstance('abc',Iterable))打印出True

 

print(all([1,2,4,7])) # 判断可迭代对象里的值是否都为真,返回True

print(any([1,2,4,7])) # 判断可迭代对象里是否有一个值为真,返回True

print(bin(10)) # 十进制转成二进制,打印出0b1010,加上.replace('0b',''),打印1010

print(bin(10).replace('0b','')) # 十进制转成二进制

print(bool('s')) # 把一个对象转成布尔类型,传入值非空即真

print(dir(my_type)) # 打印传入对象的可调用方法

def my_type(var):
if type(var) == list:
print('此类型是list')
elif type(var) == dict:
print('此类型是字典')
elif type(var) == int:
print('此类型是整型的')
elif type(var) == str:
print('此类型是字符串')
print(dir(my_type)) 打印出传入对象的可调用方法

eval() # 执行python代码,只能执行简单的,定义数据类型和运算

print(exec('def a():print("哈哈")')) # 执行复杂的python代码,调用函数打印出哈哈

print(max([1,2,3])) # 取最大值

print(sum([1,2,3])) # 求和

print(round(1.234,2)) # 取几位小数,四舍五入

res = ['21',345,0,False,{},{'age':18}]
def filter_lis(var):
if var:
return True
print(list(filter(filter_lis,res))) # filter就是挨个把后面的元素传入到前面的函数,filter帮你循环调用这个函数

def kua(name):

    return '真帅' +name

names = ['光远','大磊','俊熹']

res = map(kua,names) # map是替你循环调用这个函数,把这个函数运算完的结果返回来,map()函数接收两个参数,一个是函数,一个是可迭代对象,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回

print(list(res))

 

利用map()函数,把用户输入的不规则的英文名字,变为首字母大写,其他小写的规范名字,输入:['adam','LISA','barT'],输出:['Adam','Lisa','Bart']

def normalize(name):

       name = name[0].upper() + name[1:].lower()

       return name

L1 = ['adam','LISA','barT']

L2 = list(map(normalize,L1))

print(L2)

 

zip # zip()函数来可以把可迭代对象合并,并创建一个元组对的列表,若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同

a1 = ['姓名','年龄','电话']

a2 = ('贾梦圆',18,110)

print(list(zip(a1,a2))) # 使用zip()函数来可以把可迭代对象合并,并创建一个元组对的列表

for k,v in zip(a1,a2): # a1,a2是可迭代对象,zip里不限制个数

   print('%s:%s' % (k,v))

 

想要在for循环中同时迭代索引和元素本身,可用python内置的enumerate函数,enumerate可以传入一个list、元组、字符串、字典,字典打印出key

for i,j in enumerate([1,2,3]): # list
print(i,j)
for i,j in enumerate('abc'): # 字符串
print(i,j)
for i,j in enumerate((1,2,3)): # 元组
print(i,j)
for i,j in enumerate({'a':'aaa','b':'bbb'}): # 字典
print(i,j)

 

lambda是一个表达式,函数体比def简单很多

f = lambda x,y : x + y

res = f(1,2)
print(res)

 

reduce() 函数会对参数序列中元素进行累积,这个函数必须接收两个参数

请编写一个prod()函数,可以接受一个list并利用reduce()求积

from functools import reduce
def prod(a):
def calc(a,b):
return a * b
return reduce(calc,a)
print(prod([2,3,5]))

假设用一组tuple表示学生名字和成绩:L = [('Bob',75),('Adam',92),('Bart',66),('Lisa',88)],请用sorted()对上述列表分别按名字排序

lis = [('Bob',75),('Adam',92),('Bart',66),('Lisa',88)]
def by_name(t):
return t[0]
print('sorted by name:')
print(sorted(lis,key = by_name))

假设用一组tuple表示学生名字和成绩:L = [('Bob',75),('Adam',92),('Bart',66),('Lisa',88)],请用sorted()对上述列表分别按成绩从高到低排序

lis = [('Bob',75),('Adam',92),('Bart',66),('Lisa',88)]
def by_score(t):
return t[1]
print('sorted by score:')
print(sorted(lis,key = by_score,reverse = True))

转载于:https://www.cnblogs.com/laosun0204/p/8542463.html

你可能感兴趣的:(day7_内置函数)