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))