python的collection系列-默认字典(defaultdict)

默认字典,能定义默认值为其他类型

 1 #dic1 = {}
 2 #dic1["k1"].append("kkkkk")         #正常情况会报错
 3 #print(dic1)
 4 
 5 import collections
 6 dic = collections.defaultdict(list)    #指定字典的值为列表
 7 dic["k1"].append("kkkkk")
 8 print(dic)
 9 
10 #执行结果:
11 defaultdict(<class 'list'>, {'k1': ['kkkkk']})

 

 

 1 #有如下值集合,不用默认字典执行代码如下
 2 #[11,22,33,44,55,66,77,88,99,90]
 3 #将所有大于66的值保存在字典的第一个key中,
 4 #将小于等于66的值保存在第二个key的值(列表)中。
 5 #即:{"k1":大于66,"k2":小于等于66}
 6 
 7 li = [11,22,33,44,55,66,77,88,99,90]
 8 dic = {}
 9 
10 for i in li:
11     if i>66:
12         if "k1" in dic.keys():
13             dic["k1"].append(i)
14         else:
15             dic["k1"] = [i,]
16     else:
17         if "k2" in dic.keys():
18             dic["k2"].append(i)
19         else:
20             dic["k2"] = [i,]
21 print(dic)
22 
23 #执行结果:
24 {'k2': [11, 22, 33, 44, 55, 66], 'k1': [77, 88, 99, 90]}
 1 #用默认字典精简代码
 2 from collections import defaultdict         #这样写,下面就不用写collections.defaultdict了
 3 values = [11, 22, 33,44,55,66,77,88,99,90]
 4 my_dict = defaultdict(list)     
 5 
 6 for value in  values:
 7     if value>66:
 8         my_dict['k1'].append(value)
 9     else:
10         my_dict['k2'].append(value)
11 print(my_dict)
12 
13 #执行结果:
14 defaultdict(<class 'list'>, {'k2': [11, 22, 33, 44, 55, 66], 'k1': [77, 88, 99, 90]})

 

转载于:https://www.cnblogs.com/repo/p/5422372.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430601.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jquery获取java对象的属性_jQuery - 获得内容和属性

jQuery - 获得内容和属性jQuery 拥有可操作 HTML 元素和属性的强大方法。jQuery DOM 操作jQuery 中非常重要的部分&#xff0c;就是操作 DOM 的能力。jQuery 提供一系列与 DOM 相关的方法&#xff0c;这使访问和操作元素和属性变得很容易。提示&#xff1a;DOM Document Objec…

用border画三角形

<html> <head> <title>用border画三角形</title> <style>#one{width:0px;height:0px;margin:0 auto;border-top:50px solid white;border-right:50px solid white;border-bottom:50px solid orange;border-left:50px solid white;} </style&g…

iOS9适配(包括APNs)的改变

https://github.com/ChenYilong/iOS9AdaptationTips转载于:https://www.cnblogs.com/zkzzkz/p/5426658.html

javascript知识点记录(2)

1.js 异步加载和同步加载 异步加载模式也叫非阻塞模式&#xff0c;浏览器在下载js的同时&#xff0c;同时还会执行后续的页面处理&#xff0c; 在script标签内&#xff0c;用创建一个script元素&#xff0c;并插入到document中&#xff0c;这样就是异步加载js文件了 //以前的一…

java form的时间格式_SpringMvc接收日期表单提交,自动转换成Date类型方法

User中有birthday(Date)属性&#xff0c;用户注册的时候&#xff0c;选择日期即可&#xff0c;然后提交表单&#xff0c;可spring mvc 报错&#xff0c;400 Bad Request意思是不能把字符串转为Date类型的。实体类中加日期格式化注解DateTimeFormat(pattern "yyyy-MM-dd&q…

Groovy安装与入门实例

Groovy安装与入门实例 摘自: http://blog.csdn.net/dc_726/article/details/8576205 1 Groovy是什么&#xff1f; 来看下官网的介绍&#xff1a;http://groovy.codehaus.org Groovy... is an agile and dynamic language for the Java Virtual Machine builds upon the stren…

Ubuntu设置为命令行登录

rootubuntu:~# vi /etc/default/grub 改: 11 #GRUB_CMDLINE_LINUX_DEFAULT"quiet splash"12 GRUB_CMDLINE_LINUX_DEFAULT"quiet splash text" rootubuntu:~# update-grub rootubuntu:~# reboot 转载于:https://www.cnblogs.com/mylinux/p/5437543.html

java开发平台普元_java开发平台的两种实现模式

从目前国内主流的java开发平台看&#xff0c;主要有两种实现模式&#xff1a;引擎模式及生成源代码模式。引擎模式比较有代表性的是华丹平台(https://www.huadaninfo.com)&#xff0c;生成源代码模式比较有名是的普元平台(http://www.primeton.com)首先说一下引擎模式&#xff…

sde用户下使用sqlplus登录错误ORA-12547: TNS:lost contact

环境&#xff1a;linux oracle arcsde 解决&#xff1a;root用户下增加$ORACLE_HOME/bin/oracle文件的s权限[oraclelocalhost bin]$ chmod s oracle查看权限[oraclelocalhost bin]$ ls -al oracles权限参考 chmod s 可以给文件/目录 设置 suid和sgid转载于:https://www.cnblo…

java版本streamgobbler_java调用本地命令 Runtime class's exec() method

一个简单的定时调用dos命令的例子2,ExecJavac.java 带有异常处理的命令调用例子3,GoodWindowsExec.java 执行windows下的命令&#xff0c;命令作为参数输入StreamGobbler.java4,GoodWinRedirect.java 一个调用命令相对复杂的例子&#xff0c;复合命令StreamRedirectGobbler.jav…

Linux定时任务

最近在做一个SHELL脚本&#xff0c;要求每月1号执行一次。 不管是SHELL脚本&#xff0c;还是定时任务&#xff0c;都是刚接触。今天先记录下定时任务的解决过程&#xff0c;shell脚本的总结等测试无误后写出来。 root以及其他用户可以使用 crontab -e 命令添加定时任务 crontab…

java长连接转短连接_java原生程序redis连接(连接池/长连接和短连接)选择问题...

原标题&#xff1a;java原生程序redis连接(连接池/长连接和短连接)选择问题最近遇到的连接问题我准备从重构的几个程序(redis和mysql)长连接和短连接&#xff0c;以及连接池和单连接等问题用几篇博客来总结下。这个问题的具体发生在java原生程序和redis的交互中。这个问题对我最…

CCTF部分赛题分析

这次算是跟着师傅们全程打完了CCTF的线上赛&#xff0c;一些强队的WriteUp也放了出来。这篇文章主要是想跟着大牛的思路把那些题重新再过一遍。 PWN3 这个是格式化字符串漏洞的题。printf的格式化串直接来自用户输入。 操作流程 用格式化字符串"%7$x"泄漏libc的地址。…

mediawiki mysql_MediaWiki

MediaWiki 最初是由科隆大学的学生及Magnus Manske这位程式开发员设计来编写维基百科的。50而当时是使用以Perl基础的UseModWiki(被维基社群加上外号为”Phase I”)&#xff0c;但後来於2002年1月25日转换至以PHP编写的新版本(”Phase Ⅱ”)。这个维基社群中是十分有名的&#…

20159206 《网络攻防实践》第九周学习总结

20159206《网络攻防实践》第九周学习总结 教材学习内容总结 本周我们学习了教材的第九章和第十章。 第九章介绍了恶意代码安全攻防。首先教材介绍了恶意代码的基础知识&#xff0c;恶意代码指的是使计算机按照攻击者的意图执行以达到恶意目的的指令集。恶意代码包括计算机病毒、…

mysql 操作xm_mysql基本命令使用

启动mysql>net start mysql连接mysql>mysql -u root -h 127.0.0.1 -p password断开mysql连接>qult;查看mysql服务器所有数据库列表>show databases;选择mysql数据库>use database_name;创建数据库>create database database_name;删除数据库>drop databas…

Android深度探索(卷一)第四章读书笔记

通过对git使用方法的学习&#xff0c; 第四章就介绍了源代码的下载和编译。 4.1 下载、编译和测试Android源代码 4.1.1 配置Android源代码下载环境&#xff1a;1创建一个用于存放下载脚本文件的目录。2下载repo脚本文件。3创建用于存放Android源代码的目录。4初始化。5开始下载…

mysql集群重启报错lock_CentOS7.2 下 MySQL 之 PXC 集群部署【Docker+单机多节点】

背景【注意】: 鄙人认为本篇适合做入门测试/学习之用&#xff0c;选择的 "单机多节点配置"&#xff0c;后面再整理 "多机配置"文章.近期正突击学习数据库知识想着对 PXC 集群部署实际操作一番&#xff0c;提高技能点&#xff0c;为后续的升职加薪做充足的准…

十二:内存简单介绍和OC的内存管理

一、内存简单介绍 内存结构 1、运行时分配 &#xff08;1&#xff09;栈&#xff1a;用户存放程序临时创建的局部变量&#xff08;先进后出&#xff09;。 &#xff08;2&#xff09;堆&#xff1a;动态分配内存段。 2、编译器分配 &#xff08;1&#xff09;BSS段&#xff1a;…

java上传组件_java上传组件FileUpload

如果表单中有文件要上传&#xff0c;也就是有就需要在form标签中添加enctype"multipart/form-data"属性 如果添加此属性&#xff0c;在操作页面servlet中&#xff0c;用request.getParameter("name")获取普通表单数据就会出错java.lang.NullPointerExcepti…