- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
郑州Python培训班教你数据统计,分组的一些小技巧在字典中将键映射到多个值上面 {b:?[4,?5,?6], a:?[1,?2,?3]}有时候我们在统计相同key值的时候,希望把所有相同key的条目添加到以key为键的一个字典中,然后再进行各种操作,这时候我们就可以使用下面的代码进行操作:from collections import?defaultdict d?=?defaultdict(list) print(d) d[a].append(1) d[a].append(2) d[a].append(3) d[b].append(4) d[b].append(5) d[b].append(6) print(d) print(d.get(a)) print(d.keys()) print([d.get(i)?for?i?in?d]) 这里是使用了collections中的方法,这里面还拥有很多有用的方法,我们有时间在继续进行深入了解。 上面代码运行结果:defaultdict(,?{}) defaultdict(,?{b:?[4,?5,?6],?a:?[1,?2,?3]}) [1,?2,?3] dict_keys([b,?a]) [[4,?5,?6],?[1,?2,?3]] 我们将数据填入之后,相当于进行快速分组,然后遍历每个组就可以统计一些我们需要的数据。迅速转换字典键值对 data?=?{...}zip(data.values(),?data.keys()) data是我们的格式数据,使用zip后进行快速键值转换,然后可以使用max,min之类函数进行数据操作。通过公共键对字典进行排序 from operator import itemgetterdata?=?[ ????{name:?bran,?uid:?101}, ????{name:?xisi,?uid:?102}, ????{name:?land,?uid:?103} ] print(sorted(data,?key=itemgetter(name))) print(sorted(data,?key=itemgetter(uid))) 数据格式就是data,我们想要对name或者uid进行排序我们就是用代码中的方法。运行结果:[{name:?bran,?uid:?101},?{name:?land,?uid:?103},?{name:?xisi,?uid:?102}] [{name:?bran,?uid:?101},?{name:?xisi,?uid:?102},?{name:?land,?uid:?103}] 正如我们期望中的一样对列表中的多个字典根据某一字段进行分组 注意注意,在进行分组前要首先对数据进行排序处理,排序字段根据实际要求来选择。即将处理的数据:rows?=?[ ????{name:?bran,?uid:?101,?class:?13}, ????{name:?xisi,?uid:?101,?class:?11}, ????{name:?land,?uid:?103,?class:?10} ] 期望处理结果:{ 101:?[{name:?xisi,?class:?11,?uid:?101},{name:?bran,?class:?13,?uid:?101}], 103:?[{name:?land,?class:?10,?uid:?103}] } 我们按照uid进行分组,这里只是演示,uid一般也不会重复。这个比较复杂一点,我们一部一步来分解。some?=?[(a,?[1,?2,?3]),?(b,?[4,?5,?6])] print(dict(some)) 结果:{b: [4, 5, 6], a: [1, 2, 3]} 这里我们的目的是将元组转换成字典,这个很简单,应该都能看懂。接着我们来下一步对待处理数据进行排序:data_one?=?sorted(rows,?key=itemgetter(class)) print(data_one) data_two?=?sorted(rows,?key=lambda?x:?(x[uid],?x[class])) print(data_two) 这里我们提供两种排序方式原理相同,只是样式稍有区别,第一种data_one是直接使用itemgetter,按照我们前面使用过得,直接按照某一字段进行排序,可是有时候我们会有另一种要求:先按照某一字段排序,当第一字段重复时,再按照另一字段排序。这时我们就用第二种方法,进行多字段值排序。 排序结果如下:[{name:?land,?class:?10,?uid:?103},?{name:?xisi,?class:?11,?uid:?101},?{name:?bran,?c
文档评论(0)