码迷,mamicode.com
首页 > 其他好文 > 详细

18.07.16 例题

时间:2018-07-17 19:54:02      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:lex   其他   new   信息   数据   use   存在   int   新建   

例:

user_list = [{"name":"alex","hobby":"抽烟"},
{"name":"alex","hobby":"喝酒"},
{"name":"alex","hobby":"烫头"},
{"name":"wusir","hobby":"喊麦"},
{"name":"wusir","hobby":"街舞"}]
==>[{‘name‘: ‘alex‘, ‘hobby_list‘: [‘抽烟‘, ‘喝酒‘, ‘烫头‘]},
{‘name‘: ‘wusir‘, ‘hobby_list‘: [‘喊麦‘, ‘街舞‘]}]

解题思路: 判断是否在result里面存在这个人的信息,如果不存在则新建一个字典,把hobby_list对应的value值放到一个列表中; 如果存在把hobby_list对应的列表加入一个hobby.

 解题步骤:

user_list = [{"name":"alex","hobby":"抽烟"},
{"name":"alex","hobby":"喝酒"},
{"name":"alex","hobby":"烫头"},
{"name":"wusir","hobby":"喊麦"},
{"name":"wusir","hobby":"街舞"}]
result = []
for user in user_list:
for new_user in result:
if new_user["name"] == user["name"]:
new_user.setdefault("hobby_list",[]).append(user["hobby"])
break
else:
dic = {}
dic["name"] = user["name"]
dic["hobby_list"] = [user["hobby"]]
result.append(dic)
print(result)

如果默认值参数是一个可变的数据类型,在调用的时候改变了.在其他位置看到的也跟着改变.

例:

def extendList(val, list=[]):
list.append(val)
return list
list1 = extendList(10)
list2 = extendList(123, [])
list3 = extendList(‘a‘)
print(‘list1=%s‘ % list1)
print(‘list2=%s‘ % list2)
print(‘list3=%s‘ % list3)
==>list1=[10, ‘a‘]
list2=[123]
list3=[10, ‘a‘]

 

18.07.16 例题

标签:lex   其他   new   信息   数据   use   存在   int   新建   

原文地址:https://www.cnblogs.com/gxj742/p/9325418.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!