合并字典列表中的常见元素并将不常见的元素存储在新键中

rakesh

我有一本很大的字典,其中的键包含项目列表,这些是无序的。我想将某些元素归为新键。例如

input= [{'name':'emp1','state':'TX','areacode':'001','mobile':123},{'name':'emp1','state':'TX','areacode':'002','mobile':234},{'name':'emp1','state':'TX','areacode':'003','mobile':345},{'name':'emp2','state':'TX','areacode':None,'mobile':None},]

对于上面的输入,我想将区号和手机分组到一个新键中 contactoptions

opdata = [{'name':'emp1','state':'TX','contactoptions':[{'areacode':'001','mobile':123},{'areacode':'002','mobile':234},{'areacode':'003','mobile':345}]},{'name':'emp2','state':'TX','contactoptions':[{'areacode':None,'mobile':None}]}]

我现在要进行两个较长的迭代。我想更有效地实现相同的功能,因为记录数量很多。如果使用像熊猫这样的软件包,则可以使用现有方法。

阿兰·T。

对于常规词典,您可以使用setdefault方法在一次通过/循环中进行操作,而无需进行排序:

data = [{'name':'emp1','state':'TX','areacode':'001','mobile':123},{'name':'emp1','state':'TX','areacode':'002','mobile':234},{'name':'emp1','state':'TX','areacode':'003','mobile':345},{'name':'emp2','state':'TX','areacode':None,'mobile':None}]

merged = dict()
for d in data:
    od = merged.setdefault(d["name"],{k:d[k] for k in ("name","state")})
    od.setdefault("contactoptions",[]).append({k:d[k] for k in ("areacode","mobile")})
merged = list(merged.values())

输出:

print(merged)
# [{'name': 'emp1', 'state': 'TX', 'contactoptions': [{'areacode': '001', 'mobile': 123}, {'areacode': '002', 'mobile': 234}, {'areacode': '003', 'mobile': 345}]}, {'name': 'emp2', 'state': 'TX', 'contactoptions': [{'areacode': None, 'mobile': None}]}]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

列表中不常见的输出元素

来自分类Dev

使用 PHP 比较两个数组并将不常见的字符串存储在新数组中

来自分类Dev

从Counter中删除最不常见的元素

来自分类Dev

从Counter中删除最不常见的元素

来自分类Dev

从DateTime列表中查找常见的DateTime,如果不常见则查找最常见的

来自分类Dev

在Java中从两个不同的数组列表对象中找到不常见的通用所有元素

来自分类Dev

在SQL中查找不常见的用户

来自分类Dev

C ++中不常见的FOR语句形式

来自分类Dev

C:仅在2个数组中打印不常见的元素

来自分类Dev

Java无限流中的常见元素

来自分类Dev

Python:从列表中返回顺序出现的常见项目的列表,以及不常见项目的列表

来自分类Dev

根据常用列合并记录,并将最后一列中不常见的值指定为逗号分隔

来自分类Dev

筛选Python列表以查找常见元素

来自分类Dev

如何删除具有2个常见元素的数组/结构列表中的元素

来自分类Dev

在Excel 2010中查找常见和不常见的值

来自分类Dev

额外模块中不常见类型类的实例声明

来自分类Dev

基于熊猫中列的不常见行

来自分类Dev

ZF2中不常见的表单属性用法

来自分类Dev

'less' 程序源中不常见的函数定义

来自分类Dev

在熊猫数据框中查找常见元素

来自分类Dev

在几个数组中查找元素的最常见组合

来自分类Dev

Python清单中存在的所有常见元素

来自分类Dev

PHP-如何从多维数组中查找常见元素?

来自分类Dev

如何从两个不同对象列表中获取不常见对象

来自分类Dev

最常见的数组元素

来自分类Dev

计算在Python 3中包含3个常见元素的子列表的数量

来自分类Dev

常见Lisp中的列表位置映射

来自分类Dev

比较两个array-list元素并获得不常见的元素

来自分类Dev

合并包含Scala中常见元素的集合集

Related 相关文章

  1. 1

    列表中不常见的输出元素

  2. 2

    使用 PHP 比较两个数组并将不常见的字符串存储在新数组中

  3. 3

    从Counter中删除最不常见的元素

  4. 4

    从Counter中删除最不常见的元素

  5. 5

    从DateTime列表中查找常见的DateTime,如果不常见则查找最常见的

  6. 6

    在Java中从两个不同的数组列表对象中找到不常见的通用所有元素

  7. 7

    在SQL中查找不常见的用户

  8. 8

    C ++中不常见的FOR语句形式

  9. 9

    C:仅在2个数组中打印不常见的元素

  10. 10

    Java无限流中的常见元素

  11. 11

    Python:从列表中返回顺序出现的常见项目的列表,以及不常见项目的列表

  12. 12

    根据常用列合并记录,并将最后一列中不常见的值指定为逗号分隔

  13. 13

    筛选Python列表以查找常见元素

  14. 14

    如何删除具有2个常见元素的数组/结构列表中的元素

  15. 15

    在Excel 2010中查找常见和不常见的值

  16. 16

    额外模块中不常见类型类的实例声明

  17. 17

    基于熊猫中列的不常见行

  18. 18

    ZF2中不常见的表单属性用法

  19. 19

    'less' 程序源中不常见的函数定义

  20. 20

    在熊猫数据框中查找常见元素

  21. 21

    在几个数组中查找元素的最常见组合

  22. 22

    Python清单中存在的所有常见元素

  23. 23

    PHP-如何从多维数组中查找常见元素?

  24. 24

    如何从两个不同对象列表中获取不常见对象

  25. 25

    最常见的数组元素

  26. 26

    计算在Python 3中包含3个常见元素的子列表的数量

  27. 27

    常见Lisp中的列表位置映射

  28. 28

    比较两个array-list元素并获得不常见的元素

  29. 29

    合并包含Scala中常见元素的集合集

热门标签

归档