返回顶部
首页 > 资讯 > 后端开发 > Python >Python中对字典的几个处理方法分享
  • 871
分享到

Python中对字典的几个处理方法分享

2024-04-02 19:04:59 871人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录字典求和列表剔重并计数获取字典中最大的value获取字典中出现value最大的key字典对应元素追加字典对应元素追加并剃重对字典进行过滤反转字典的方法(字典的key和value对

字典求和

edge_weights = defaultdict(lambda: defaultdict(float))
for idx,node in enumerate(graph.nodes()):
    node2com[node] = idx    #给每一个节点初始化赋值一个团id
    for edge in graph[node].items():
        edge_weights[node][edge[0]] = edge[1]['weight']

edge_weights

运行结果:

defaultdict(<function __main__.<lambda>()>,
            {'397564': defaultdict(float,
                         {'15.1.18010.11898': 71,
                          '15.1.18010.11899': 54,
                          '15.1.18009.11899': 75,
                          '15.1.18009.11898': 160}),
             '15.1.18010.11898': defaultdict(float,
                         {'397564': 71,
                          '577806': 61,
                          '73827465': 66,
                          '30009791666': 62,
                          '30005407392': 59,
                          '100293225': 102,
                          '30012147301': 65,
                          '138661946': 52}),
             '1085941': defaultdict(float,
                         {'15.1.18007.11870': 120,
                          '15.1.18005.11872': 55,
                          '15.1.18004.11872': 75,
                          '15.1.18006.11870': 83,
                          '15.1.18004.11871': 63})
})

对上述edge_weights所有的值汇入列表并求和:

sum(
    [weight for start in edge_weights.keys() for end, weight in edge_weights[start].items()]
)

列表剔重并计数

方法1:

统计列表中的重复项出现的次数。
循环遍历出一个可迭代对象中的元素,如果字典没有该元素,那么就让该元素作为字典的键,并将该键赋值为1,如果存在就将该元素对应的值加1.

lists = ['a','a','b',5,6,7,5,'a']
count_dict = dict()

for item in lists:
    if item in count_dict:
        count_dict[item] += 1
    else:
        count_dict[item] = 1

方法2:

使用collections.defaultdict(),将default_factory设为int,代码如下:

from collections import defaultdict
#s = 'mississippi'
s = ['a','a','b',5,6,7,5,'a']
d = defaultdict(int)
for k in s:
    d[k] += 1
print('\n',d)

获取字典中最大的value

a = {'a':2,'b':3,'c':5,'d':9,'e':4}
print(max(a.values()))

获取字典中出现value最大的key

a = {'a':2,'b':3,'c':5,'d':9,'e':4}
print(max(a,key=a.get))

运行结果:

d

字典对应元素追加

对于列表:

s = [('yellow',1),('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]

统计列表字典有两种方法:

方法1:

用dict.setdefault()实现。

代码如下:

s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
d = {}
for k, v in s:
    d.setdefault(k,[]).append(v)
a = sorted(d.items())
print(a)

运行结果:

[('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]

方法2;

使用collections.defaultdict(),并使用list作第一个参数,可以很容易将键-值对序列转换为列表字典,

代码如下:

from collections import defaultdict
s = [('yellow',1),('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
d = defaultdict(list)
for k, v in s:
    d[k].append(v)
a = sorted(d.items())
print(a)

运行结果:

[('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]

当字典中没有的键第一次出现时,default_factory自动为其返回一个空列表,list.append()会将值添加进新列表;再次遇到相同的键时,list.append()将其它值再添加进该列表。这种方法比使用dict.setdefault()更为便捷。

字典对应元素追加并剃重

对于列表:

s = [('red', 1), ('blue', 2), ('red', 3), ('blue', 4), ('red', 1), ('blue', 4)]

统计并剃重:

from collections import defaultdict
s = [('red', 1), ('blue', 2), ('red', 3), ('blue', 4), ('red', 1), ('blue', 4)]
d = defaultdict(set)
for k, v in s:
    d[k].add(v)
print('\n',d)

运行结果:

defaultdict(<class 'set'>, {'red': {1, 3}, 'blue': {2, 4}})

对字典进行过滤

创建一个新的字典,可以利用字典推导式

headerTable = {k: v for k, v in headerTable.items() if v > 2}

反转字典的方法(字典的key和value对换)

使用字典推导:

m = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
{v: k for k, v in m.items()}

使用压缩器:

m = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
m.items()    #[('a', 1), ('c', 3), ('b', 2), ('d', 4)]
zip(m.values(), m.keys())   #[(1, 'a'), (3, 'c'), (2, 'b'), (4, 'd')]
mi = dict(zip(m.values(), m.keys()))

字典的key和value对换并把key按照value进行列表合并

对于字典:

defaultdict(int,
            {'2100201919459568780': 0,
             '2100201927433498080': 1,
             '2100201935997972401': 2,
             '2100201934073343294': 3,
             '2100201938073398590': 3,
             '2100201938426179130': 2,
             '2100201938057211020': 4,
             '2100201938030472762': 3,
             '2100201940356247098': 4,
             '2100201939150253460': 4,
             '2100201935737728404': 4,
             '2100201938984381844': 4,
             '2100201937770425806': 4,
             '2100201937563397283': 4,
             '2100201941426286415': 4,
             '2100201936062819790': 4,
             '2100201936279351185': 4,
             '2100201934074097553': 4,
             '2100201940543713169': 4})

进行处理:

track_merge = defaultdict(list)
for i in track_label.items():
    track_merge[str(i[1])].append(i[0])

输出:

defaultdict(list,
            {'0': ['2100201919459568780'],
             '1': ['2100201927433498080'],
             '2': ['2100201935997972401', '2100201938426179130'],
             '3': ['2100201934073343294',
              '2100201938073398590',
              '2100201938030472762'],
             '4': ['2100201938057211020',
              '2100201940356247098',
              '2100201939150253460',
              '2100201935737728404',
              '2100201938984381844',
              '2100201937770425806',
              '2100201937563397283',
              '2100201941426286415',
              '2100201936062819790',
              '2100201936279351185',
              '2100201934074097553',
              '2100201940543713169']})

合并字典

appointment = { 'soccer' : { 'day': 20, 'month': 'april' } }
appointment2 = { 'gym' : { 'day': 5, 'month': 'may' } }
appointment.update(appointment2)
appointment

输出:

{
    'gym': {'day': 5, 'month': 'may'}, 
    'soccer': {'day': 20, 'month': 'april'}
}

到此这篇关于python中对字典的几个处理方法分享的文章就介绍到这了,更多相关Python字典处理内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python中对字典的几个处理方法分享

本文链接: https://lsjlt.com/news/120293.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python中对字典的几个处理方法分享
    目录字典求和列表剔重并计数获取字典中最大的value获取字典中出现value最大的key字典对应元素追加字典对应元素追加并剃重对字典进行过滤反转字典的方法(字典的key和value对...
    99+
    2024-04-02
  • python中的字典使用分享
    字典中的键使用时必须满足一下两个条件: 1、每个键只能对应一个项,也就是说,一键对应多个值时不允许的(列表、元组和其他字典的容器对象除外)。当有键发生冲突时(即字典键重复赋值),取最后的赋值。 >&...
    99+
    2022-06-04
    字典 python
  • python字典取值的几种方法
            Python 字典(dictionary)是一种可变容器模型,可以存储任意数量的任意类型的数据。字典中的每个元素由一个键和一个值组成,键和值之间用冒号分隔。字典通常用于存储键值对的数据,例如在数据库中存储记录。   以下是 ...
    99+
    2023-09-06
    python Python字典 容器模型
  • Python中删除字典中键值对的方法
    方法一:dic.pop('key', 默认值) ## pop移除的键存在时,返回键对应的值dic = {'1':'node1','2':'node2'}print(dic.pop('1', None)) # node1print(dic...
    99+
    2023-09-06
    python
  • python字典取值的几种方法总结
    目录方法一:使用方括号 [ ] 运算符方法二:使用get()方法方法三:使用items()方法方法四:使用keys()方法方法五:使用values()方法方法六:使用in关键字方法七...
    99+
    2023-05-15
    python字典取值 python字典 python字典取值方法
  • python字典添加值的方法及实例代码分享
    对于字典的操作,本篇介绍的是在其中添加值的方法,下面带来详细的介绍。 1、通过键=值的方式进行添加。如果键存在,则会将旧的值进行覆盖,如果不存在则添加。 addDic1 = { ...
    99+
    2022-11-21
    python 字典 添加值
  • Python中创建字典的几种方法总结(推荐)
    1、传统的文字表达式: >>> d={'name':'Allen','age':21,'gender':'male'} >>> d {'age': 21, 'name...
    99+
    2022-06-04
    字典 几种方法 Python
  • Python中字符串对象语法分享
    目录一、字符串的外观1.字符串字面量2.字符串与多行注释3.字符串编码方式二、字符串对象1.str2.str实现原理3.str中的内置方法4.字符串切片前言:前面提到了Python中...
    99+
    2024-04-02
  • Python中字符串的处理技巧分享
    一、如何拆分含有多种分隔符的字符串? 实际案例 我们要把某个字符串依据分隔符号拆分不同的字符段,该字符串包含多种不同的分隔符,例如: s = 'asd;aad|dasd|dasd,sdasd|asd,...
    99+
    2022-06-04
    字符串 技巧 Python
  • PHP编程技巧:处理字符串中多个逗号的方法分享
    PHP编程技巧:处理字符串中多个逗号的方法分享 在PHP编程中,经常会遇到需要处理字符串中多个逗号的情况,比如需要将一个用逗号分隔的字符串拆分成数组,或者需要去除字符串中所有逗号等操作...
    99+
    2024-04-02
  • python中常用的九种预处理方法分享
    本文总结的是我们大家在python中常见的数据预处理方法,以下通过sklearn的preprocessing模块来介绍; 1. 标准化(Standardization or Mean Removal and...
    99+
    2022-06-04
    常用 方法 python
  • 分享python中几个常用函数的正确用法
    这篇文章主要讲解了“分享python中几个常用函数的正确用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“分享python中几个常用函数的正确用法”吧!1 lambda匿名函数,用法如下:#...
    99+
    2023-06-25
  • 分享几个Ecshop中二次开发的常见方法
    收货人信息的省市区设成非必选项 一般面向国外用户的ECSHOP商城,可能会有这方面的需求:【将Ecshop中收货人信息的省市区设成非必选项】,其实也就是只留一个“请选择国家”的下拉选择框。 修改相...
    99+
    2022-06-12
    Ecshop 二次开发
  • Python 对数字的千分位处理方式
    目录对数字的千分位处理法1法2法3格式化千分位数字2.7版本以上直接用format设置千分位分隔符正则实现对数字的千分位处理 法1 >>> "{:,}".forma...
    99+
    2024-04-02
  • Python字典中dict几种遍历方式分别是什么
    这期内容当中小编将会给大家带来有关Python字典中dict几种遍历方式分别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.使用 for key in dict遍历字典可以使用for key in...
    99+
    2023-06-25
  • Python|合并两个字典的8种方法
    在Python中,有多种方法可以通过使用各种函数和构造函数来合并字典。在本文中,我们将讨论一些合并字典的方法。 1. 使用方法update() 通过使用Python中的update()方法,可以将一个...
    99+
    2023-09-15
    python 开发语言
  • js字符串分割处理的几种方法(6种)
    目录1、slice(start, end)2、substr(start, length)3、substring(start, stop)4、split(separ...
    99+
    2024-04-02
  • Python中字典的setdefault()方法教程
    前言 在python基础知识中有说过,字典是可变的数据类型,其参数又是键对值。setdefault()方法和字典的get()方法在一些地方比较相像,都可以得到给定键对应的值。但setdefault()方法可...
    99+
    2022-06-04
    字典 方法 教程
  • Python 对数字的千分位处理
    法1: >>> "{:,}".format(56381779049) '56,381,779,049' >>> "{:,}".format(56381779049.1) '56,381,779,049...
    99+
    2023-01-31
    千分 数字 Python
  • Python字典的常用方法实例分析
    这篇文章主要讲解了“Python字典的常用方法实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python字典的常用方法实例分析”吧!字典添加与修改方法利用 [ ] 处理看到 [] 我...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作