key

python字典的简单操作(修改、删除、嵌套、遍历、复制)

余生长醉 提交于 2020-03-16 17:25:46
一、Python 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象。 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示: d = {key1 : value1, key2 : value2 } 键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。 >>>dict = {'a': 1, 'b': 2, 'b': '3'} >>> dict['b'] '3' >>> dict {'a': 1, 'b': '3'} 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。 1、例子 # python的数据类型:字典 # 数据类型与变量关联 name = 'bily' num = 89 key = 88.8 list = [3,4,5,6] tuple = (6,4,68) # 字典的例子:键和值 dict = {'name':'老周','age':'29','job':'程序员'} print(dict) dict1={1:101,2:102} print(dict1) 以上实例输出结果: {'name': '老周', 'age': '29', 'job': '程序员'} {1: 101, 2: 102} 表和元组直接写入值即可,而字典需要键和值皆有

第23章:MongoDB-聚合操作--聚合命令

萝らか妹 提交于 2020-03-16 08:45:12
①count() 范例:统计students表中的数据量 db.students.count(); 范例:模糊查询 db.students.count("name":/张/i); ②distinct() 范例:求某个字段不同的值 db.students.distinct("name"); db.runCommand({"distinct":"students","key":"name"}); ③group() key: 用于指定要分组的键 initial: 对于分组统计的字段设置键名和初始值 reduce: 循环每个分组中的每个文档,一组循环完了会继续下一组 condition:用于分组前筛选掉不满足条件的文档 finalize: 用于对分组后的结果进一步处理,每组都会调用finalize db.articles.group({ "key": {"author": true}, "initial": {"sum": 0}, "reduce": function(doc, prev) { if(doc.like > 10) { prev.sum += 1; } } }) [ { "author" : "zhangsan", "sum" : 2 }, { "author" : "lisi", "sum" : 2 }, { "author" : "mengday", "sum" : 0

深入python的set和dict

て烟熏妆下的殇ゞ 提交于 2020-03-16 07:56:57
一. collections中的abc    和list(Sequence)相似,都继承于Collection,添加了一些方法 二. dict的常见用法    (setdefault,defaultdict,__missing__方法)   1.copy():        from collections.abc import MutableMapping a = {'LYQ1':{'SWPU':'软件工程'}, 'LYQ2':{'SWPU2':'软件工程2'}} #这是浅拷贝,指向的是同一值,修改一个,另一个也会修改 b=a.copy() b['LYQ1']['SWPU']='我是浅拷贝' print(b) print(a) 注:copy方法是浅拷贝:深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用 a = {'LYQ1':{'SWPU':'软件工程'}, 'LYQ2':{'SWPU2':'软件工程2'}} import copy #深拷贝,指向不同的对象 deep_b=copy.deepcopy(a) deep_b['LYQ1']['SWPU']='我是深拷贝' print(deep_b) print(a)   2.fromkeys(): #把一个可迭代对象转换为dict,{'SWPU':'软件工程'}为默认值 my_list=['Stu1','Stu2'] my

【NIO服务器代码-可测试】

蹲街弑〆低调 提交于 2020-03-14 18:14:27
1、目的:了解NIO服务的工作原理 2、代码: /** * @Author: Liu * @Descripition:NIO测试 * @Date; Create in 2020/3/14 16:10 **/ public class NIOServerDemo { private int port = 8080; private Selector selector; private ByteBuffer buffer = ByteBuffer.allocate(1024); //初始化完毕 public NIOServerDemo(int port) { this.port = port; try { ServerSocketChannel server = ServerSocketChannel.open(); server.bind(new InetSocketAddress(this.port)); //设置非阻塞 server.configureBlocking(false); selector = Selector.open(); server.register(selector, SelectionKey.OP_ACCEPT); } catch (IOException e) { e.printStackTrace(); } } public void listen()

redis 学习(7) -- 有序集合

无人久伴 提交于 2020-03-13 19:23:31
redis 学习(7) -- 有序集合 zset 结构 有序集合:有序、不能包含重复元素 每个节点包含:score和value两个属性,根据score进行排序 如图: zset 重要 API 含义 命令 zadd key score1 member1 [score2 member2...] 向有序集合添加一个或多个成员,或者更新已存在成员的分数 zrem key member1 [member2...] 从有序集合中删除一个或多个成员 zscore key member 获取有序集合中成员的分数 zincrby key increment member 对有序集合中指定成员的分数加上增量increment zcard key 返回有序集合中元素的总个数 zrange key start end [withscores] 通过索引返回有序集合中指定区间的成员信息 zrangebyscore key min max [withscores][limit] 通过score返回有序集合中指定分数区间的成员信息 zscore key min max 返回有序集合中指定分数范围内的元素个数 zremrangebyscore key min max 删除有序集合中指定分数区间的所有成员 zremrangebyrank key start end 删除有序集合中给定索引区间的所有成员 演示 127

重复请求(并发访问)解决方案

最后都变了- 提交于 2020-03-12 22:41:55
对于查询这些幂等性的请求重复请求其实影响不大,但是对于插入操作的请求,如果有短时间内有重复请求,再加上有事务操作,那么就很有可能造成插入重复数据的问题。对于这种情况首先想到就是数据库添加唯一约束,但是这种方案并不是很推荐而且有很大的局限性。 这块提出一个大致简单的解决方案,对每个用户终端颁发一个唯一标识,在前端请求时带上唯一标识,服务器可以加一个过滤器来处理,每收到一个请求都判断该请求的唯一标识和请求路径是否已经在处理中,如果没有就放入内存中并标识这次请求正在处理,当上次请求还在处理中,又来了一次相同唯一标识和路径的请求,那么第二次(n次)的请求可以直接返回或者等待上次请求完成后一起返回给前端。 import com.mew.kittyapi.util.Objects; import com.mew.kittyapi.util.Strings; import lombok.extern.slf4j.Slf4j; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.util.HashMap; import java.util.concurrent.locks.ReentrantLock; @Slf4j public

ssh-keygen

女生的网名这么多〃 提交于 2020-03-12 22:40:54
ssh-keygen 产生公开钥 (pulib key) 和私人钥 (private key) ,以保障 ssh 联机的安 全 性, 当 ssh 连 shd 服务器,会交换公开钥,系统会检查 /etc/ssh_know_hosts 内储存的 key ,如果找到客户端就用这个 key 产生一个随机产生的 session key 传给服务器,两端都用这个 key 来继续完成 ssh 剩下来的阶段。 它会产生 identity.pub 、 identity 两个档案,私人钥存放于 identity ,公开钥存放于 identity.pub 中,接下来使用 scp 将 identity.pub copy 到远程机器的家目录下 .ssh 下的 authorized_keys 。 .ssh/authorized_keys( 这个 authorized_keys 档案相当于协议的 rhosts 档案 ) , 之后使用者能够不用密码去登入。 RSA 的认证绝对是比 rhosts 认证更来的安全可靠。 执行: scp identity.pub k@linux1.ee.oit.edu.tw:.ssh/authorized_keys 若在使用 ssh-keygen 产生钥匙对时没有输入密码,则如上所示不需输入密码即可从 net67.ee.oit.edu.tw 去登入 linux1.ee.oit.edu

Redis三(数据类型-常用命令)

允我心安 提交于 2020-03-12 14:23:05
数据类型 字符串 string, 哈希 hash, 链表 list, 集合 set, 排序集合 zset 字符串(string) 数据为字符串. 保存方式是二进制数据. 二进制数据是可以指定长度的,无结束标记的数据. 数据长度有限制: 512M 哈希(hash) 数据为哈希表. 类似java中的Map. 键值对存储结构类似java中的Map<String, Map<String, String>> 链表(list) 数据为一个有序的链表集合 键值对存储结构类似java中的Map<String, List<String>> 集合(set) 数据为一个无下标的集合, 数据不重复 数据结构类似java中的Map<String, Set<String>> 排序集合(zset) 数据为一个可排序的集合. 数据不重复 数据结构类似java中的Map<String, SortedSet<String>> 排序规则为字符串对应的二进制数据的大小排序. 通用命令 keys 查询当前redis中的key值, 例如: keys * 注意 : 测试时可以使用 keys *, 实际环境中慎用. 因为keys *会导致Redis暂时被锁住,其他的请求都会被阻塞,对于业务体量比较小的,倒是无关痛痒,但是当业务量达到百万千万级别的时候,这个会造成Redis崩溃,从而导致其他的业务崩溃。 incr incr -

Java基础学习笔记--常用API之HashMap

梦想与她 提交于 2020-03-12 12:19:32
1 package com.common.api; 2 3 import java.util.Map; 4 import java.util.Set; 5 import java.util.ArrayList; 6 import java.util.Collection; 7 import java.util.HashMap; 8 import java.util.Iterator; 9 10 /* 11 * Map 集合的基本特点 12 * 1、该集合存储键值对,一对一对存储,而且键值不能重复 13 * 2、一个映射不能包含重复的键 14 * 15 * Map 功能函数: 16 * 1、添加 17 * V put(K key, V value) 将指定的值与该映射中的指定键相关联(可选操作)。 18 * 注意:put方法返回key对应的原来的值,添加时如果出现 19 * 相同的键,则后添加的值会覆盖之前的值,并将之前的值返回 20 * void putAll(Map<? extends K,? extends V> m) 将指定地图的所有映射复制到此映射(可选操作)。 21 * 2、删除 22 * void clear() 从该地图中删除所有的映射(可选操作)。 23 * V remove(Object key) 如果存在(从可选的操作),从该地图中删除一个键的映射。 24 *

数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出

独自空忆成欢 提交于 2020-03-12 08:15:19
此题如果直接使用有序的TreeMap就不需要这样折腾: 1.map的key值唯一性,故就不在需要set集合来去重 2.使用map后利用key的唯一性,把序列号相同的数据直接加在一起,代码会很简洁 package com . pagination . plus . workTrain ; import com . alibaba . fastjson . JSON ; import java . io . FileInputStream ; import java . io . FileNotFoundException ; import java . util . * ; public class Main3 { public static void main ( String [ ] args ) throws FileNotFoundException { Scanner in = new Scanner ( new FileInputStream ( "D:\\JavaData\\tmp/input.txt" ) ) ; //Scanner in = new Scanner(System.in); while ( in . hasNext ( ) ) { //注意while处理多个case String strNum = in . nextLine ( ) ; int