找最大值或者最小值
# 接收n个参数. 返回最大值和最小值(字典)
def func(*args):
m = args[0] # 假设第0项就是最大值
mi = args[0]
for el in args:
if el > m:
m = el # 当前这个元素比假设的那个大. 记录当前这个比较大的数
if el < mi:
mi = el
return {"最大值":m, "最小值":mi}
print(func(5,7,12,1,46,87,3))
#利用max min 函数直接求最大值最小值 # sum可以直接求和
def func(*args):
dic={}
dic['max']=max(*args) #此处*为打散元组
dic['min']=min(*args) #此处*为打散元组
return dic
sum=(2,5,6,8,4,1)
print(func(sum))
函数默认参数是可变值时
def extendList(val, list=[]):
list.append(val)
return list
list1 = extendList(10)# lis_a=[10]
list2 = extendList(123, []) #lis_b=[123]
list3 = extendList('a') #lis_a=[10,'a']
print('list1=%s' % list1) #输出lis_a
print('list2=%s' % list2) #输出lis_b
print('list3=%s' % list3) #输出lis_a
# 默认参数是可变值时 在运行过程中会变化 所有使用过默认值的返回值都会变化
#默认参数是可变值时,如果为其赋值,则会产生一个新的变量
整合字典里的数据
# 1.判断是否在result里面存在了这个人, 如果存在. 把hobby_list添加一个hobby
# 2.不存在. 创建一个新字典
#def fn(user_list):
# lis1=[]
# for el in user_list:
# lis1.append(list(el.values()))
# lis2=[]
# for i in lis1:
# a=list(i)
# lis2.append(a[0])
# lis3=list(set(lis2))
# lis=[]
# dic={'name':'','hobby_list':[]}
# for i in range(len(lis3)):
# dic = {'name': '', 'hobby_list': []}
# dic['name']=lis3[i]
# for info in lis1:
# if info[0]==lis3[i]:
# dic['hobby_list'].append(info[1])
# lis.append(dic)
# return lis
# user_list=[
# {'name':'alex','hobby':'抽烟'},
# {'name':'alex','hobby':'喝酒'},
# {'name':'wusir','hobby':'蛤蟆皮'},
# {'name':'wusir','hobby':'钓鱼'},
# {'name':'kangkang','hobby':'睡觉'}
# ]
# print(fn(user_list)) #自己写的一堆乱码,但能实现
user_list=[
{'name':'alex','hobby':'抽烟'},
{'name':'alex','hobby':'喝酒'},
{'name':'wusir','hobby':'蛤蟆皮'},
{'name':'wusir','hobby':'钓鱼'},
{'name':'kangkang','hobby':'睡觉'}
]
result=[]
for user in user_list:
for new_user in result:
if new_user['name']==user['name']:
new_user['hobby_list'].append(user['hobby'])
break
else:
dic={}
dic['name']=user['name']
dic['hobby_list']=[user['hobby']]
result.append(dic)
print(result)