18.07.16 例题

例:

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 listlist1 = 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‘]

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

时间: 2024-10-08 17:40:24

18.07.16 例题的相关文章

18.07.20(lambda().sorted().filter().map().递归.二分查找)

1.lambda() 匿名函数 lambda表示的是匿名函数,不需要用def来声明,一句话就可以声明一个函数 语法:函数名 = lambda 参数:返回值 注意: (1)参数可以有多个,多个参数用逗号隔开 (2)匿名函数不管多复杂.只写一行.且逻辑结束后直接返回数据 (3)返回值和正常函数一样1,可以是任意数据类型 我们通过__name__()查看函数名字 例: a = lambda x : x * xprint(a(5)) ==>25print(a.__name__) ==><lamb

张珺 2015/07/16 个人文档

姓名 张珺 日期 中蓝公寓蓝芳园D507,2015/07/16 主要工作及心得 今天我们开始进行文档的编写工作,对全部的文档进行了分工,我负责了概要设计说明书的编写.详细设计说明书中客户端里操作员相关内容的编写和对于操作员中相关操作的人工测试工作. 遇到的问题 报告中各项的编写要求.报告格式 解决方法 明天去找老师讨论有关报告的问题

18.07.01 luoguP1002 过河卒

题目描述 棋盘上 AA 点有一个过河卒,需要走到目标 BB 点.卒行走的规则:可以向下.或者向右.同时在棋盘上 CC 点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点.因此称之为“马拦过河卒”. 棋盘用坐标表示, AA 点 (0, 0)(0,0) . BB 点 (n, m)(n,m) ( nn , mm 为不超过 2020 的整数),同样马的位置坐标是需要给出的. 现在要求你计算出卒从 AA 点能够到达 BB 点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步

18.07.04

一.编码 1.ASCII  8位(bit) 1个字节  最多有256个位置,包含英文字母大小写.数字.标点等特殊符号. 2.国标码 GBK 16位(bit) 2个字节 包含大部分常用的汉字. 3.万国码 Unicode 32位(bit) 4个字节 4.utf-8 :    英文  8位(bit) 1个字节 欧洲文字  16bit  2个字节 中文   24bit 3个字节 8bit=1byte    1byte=1kb   1024kb=1mb   1024mb=1GB   1024GB=1TB

18.12.16 DSA 吉老师的汉诺塔

描述 吉老师的面前出现了一座汉诺塔!但是这个汉诺塔好像坏了,盘子并不是按照从大到小的顺序排列的……吉老师非常不开心,立志要把这个汉诺塔修好!吉老师每分钟可以交换挨在一起的两个盘子,吉老师希望用的时间最短,吉老师不会啊,你能帮帮吉老师吗? 输入 第一行1个整数N.第二行为N 个非负整数,按从下到上的顺序给出每个盘子的大小.对于50%的数据,2<=N<=1000.对于100%的数据,2<=N<=100000.输出一个整数,表示最少需要交换多少次相邻的盘子才能将盘子递减排列.同样大小的盘

陈嘉 2015/07/16 个人文档

姓名 陈嘉 日期 2015/7/16 主要工作及心得 1.完成报告的JUnit测试部分 2.编写测试计划文档.测试计划文档需要详尽的考虑所有正确与错误的情况. 遇到的问题 报告的有一些部分不知道具体的格式应该是什么样子以及需要包含哪些部分 解决方法 明天去找老师讨论有关报告的问题

18.07.05

一.list列表 列表可以装大量的数据,不限制数据类型.      表达方式:[],方括号中的每项用","隔开.     列表和字符串一样,有索引和切片 1.列表的增删改查 (1).append("添加的元素")向列表中添加一个元素,默认元素添加到列表的末尾. 例: lst = ["周杰伦", "王力宏", "周润发"]lst.append("伍佰") print(lst) ==<

18.07.06

字典 dict{}:括起来的键值对是字典.{key:value} 字典中的key必须是可哈希的(不可变的).value没有限制. 整数.字符串.元组是不可变的,列表是可变的. 增: 例: dic={"A":"a"}dic["B"]="b"print(dic) ==<{'A': 'a', 'B': 'b'}> 例:  如果key重复了,value会被替换. dic={"A":"a&quo

2017.07.16 Python网络编程之在套接字服务器中使用ThreadingMixIn

直接上代码,之后再解释: # -*- coding: UTF-8 -*-# 或许基于某些原因你不想编写基于进程的应用程序,而更愿意编写多线程应用程序# 和之前的基于ForkingMixIn的套接字服务器一样,使用ThreadingMixIn编写的套接字服务器要遵循相同的回显服务器编程模式# ThreadedServr继承自TCPServer和ThreadingMixIn,客户端连接这个多线程版服务器时,会创建一个新线程# !usr/bin/env python# Python Network P