返回顶部
首页 > 资讯 > 后端开发 > Python >Python字典的高阶使用方法有哪些
  • 950
分享到

Python字典的高阶使用方法有哪些

2023-07-06 01:07:23 950人浏览 独家记忆

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

摘要

今天小编给大家分享一下python字典的高阶使用方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。通过序列生成字典我们

今天小编给大家分享一下python字典的高阶使用方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

通过序列生成字典

我们将下面的序列转换为dict类型。

lst = [('a', 1), ('b', 2), ('c', 3)]

普通的写法

for k, v in lst:dic[k] = v

Pythonic的写法

利用字典推导式快速生成字典。

{k: v for k, v in lst}
key的默认值

当指定key不存在时,将value设置为 0。

普通的写法

if key not in dct:dct[key] = 0

pythonic的写法

dct[key] = dct.get(key, 0)
交换key与value

普通的写法

dic = {'Python': 1, 'Java': 2}new_dic = {}for k, v in dic.items():new_dic[v] = k

更pythonic的写法

dic = {'Python': 1, 'Java': 2}new_dic = {v: k for k, v in dic.items()}
序列修改和初始化

示例数据

lst = [('a', 1), ('b', 2), ('c', 3)]dic = {'a': [0]}

如果我们需要根据lst来更新dic中的数据,当key存在,则将value添加到原序列末尾,否则初始化value并用序列保存。

普通的写法

for key, value in lst:if key in dic:dic[key].append(value)else:dic[key] = [value]

更pythonic的写法

for (key, value) in lst:group = dic.setdefault(key, [])group.append(value)# dic:{'a': [0, 1], 'b': [2], 'c': [3]}

setdefault(key, default)会先判断key是否存在,存在则返回dct[key] , 不存在则把dct[key]设为 [] 并返回。

key,items的集合运算

如果我们现在需要获取两个字典的key相交的部分的映射信息。

普通的写法

dic1 = {'Python': 1, 'Java': 2, 'C': 3}dic2 = {'Python': 3, 'Java': 2, 'c++': 1}new_dic = {}for k, v in dic1.items():if k in dic2.keys():new_dic[k] = vprint(new_dic)# {'Python': 1, 'Java': 2}

更pythonic的写法

dic1 = {'Python': 1, 'Java': 2, 'C': 3}dic2 = {'Python': 3, 'Java': 2, 'C++': 1}print({k: dic1[k] for k in dic1.keys() & dic2.keys()})# {'Python': 1, 'Java': 2}

这里的dic1.keys() & dic2.keys()用到的就是 keys()进行集合运算,items()同样可以进行集合运算。

如果现在我们要获取两个字典中 key,value 完全相同的部分

dic1 = {'Python': 1, 'Java': 2, 'C': 3}dic2 = {'Python': 3, 'Java': 2, 'C++': 1}print(dic1.items() & dic2.items())# {('Java', 2)}

灵活运用 keys,items() 集合运算的特性,可以快速提取我们想要的内容。

按key或value对字典排序

使用sorted()函数快速实现对key或value的排序。

dic = {'a': 2, 'b': 1, 'c': 3, 'd': 0}lst1 = sorted(dic.items(), key=lambda x: x[0], reverse=False)# [('a', 2), ('b', 1), ('c', 3), ('d', 0)]lst2 = sorted(dic.items(), key=lambda x: x[1], reverse=False)# [('d', 0), ('b', 1), ('a', 2), ('c', 3)]print('按照键降序:', {key: value for key, value in lst1})print('按照值降序:', {key: value for key, value in lst2})# 按照键降序: {'a': 2, 'b': 1, 'c': 3, 'd': 0}# 按照值降序: {'d': 0, 'b': 1, 'a': 2, 'c': 3}
多个字典排序

如果一个序列中包含多个字典,现在要根据条件对这些字典继续排序。同样可以使用sorted()函数来实现。

dict_list = [{'letter': 'B', 'number': '2'},{'letter': 'A', 'number': '3'},{'letter': 'B', 'number': '1'}]# 按 letter 排序print(sorted(dict_list, key=lambda dic: dic['letter']))# 按 letter, number 排序print(sorted(dict_list, key=lambda dic: (dic['letter'], dic['number'])))# [{'letter': 'A', 'number': '3'}, {'letter': 'B', 'number': '2'}, {'letter': 'B', 'number': '1'}]# [{'letter': 'A', 'number': '3'}, {'letter': 'B', 'number': '1'}, {'letter': 'B', 'number': '2'}]

当然,如果你知道itemgetter()的话,上面的代码就可以改变一下,执行速度会更快。

from operator import itemgetterprint(sorted(dict_list key=itemgetter('letter')))print(sorted(dict_list, key=itemgetter('letter', 'number')))

itemgetter()获取的不是值,而是定义了一个函数,通过该函数作用到目标对象上。

以上就是“Python字典的高阶使用方法有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网Python频道。

--结束END--

本文标题: Python字典的高阶使用方法有哪些

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

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

猜你喜欢
  • Python字典的高阶使用方法有哪些
    今天小编给大家分享一下Python字典的高阶使用方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。通过序列生成字典我们...
    99+
    2023-07-06
  • python字典常用的方法有哪些
    本篇内容介绍了“python字典常用的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.字典的概念字典和列表类似,也是可变序列,不...
    99+
    2023-06-29
  • Python中有哪些字典常用方法
    Python中有哪些字典常用方法?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、clear方法清除字典中所有的项,这是一个原地操作,所以无返回值(或则说返回None)d&...
    99+
    2023-06-15
  • Python数据类型字典使用方法有哪些
    这篇文章主要讲解了“Python数据类型字典使用方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python数据类型字典使用方法有哪些”吧!字典的无序特性和创建:列表是有序的对象结合...
    99+
    2023-06-02
  • python字典排序的方法有哪些
    Python字典排序的方法有以下几种:1. 使用sorted()函数:可以使用sorted()函数对字典的键或值进行排序。例如,使用...
    99+
    2023-10-12
    python
  • python字典赋值的方法有哪些
    Python 字典赋值的方法有以下几种:1、直接使用等号赋值使用等号将一个字典赋值给另一个字典,两个字典将指向同一个内存地址,即修改...
    99+
    2023-05-13
    python字典赋值 python
  • python创建字典的方法有哪些
    在Python中,可以使用多种方法创建字典,以下是一些常见的方法:1. 使用花括号{}创建空字典:```d = {}```2. 使用...
    99+
    2023-08-15
    python
  • python字典取值的方法有哪些
    这篇文章主要讲解了“python字典取值的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python字典取值的方法有哪些”吧!Python 字典(dictionary)是一种可变容...
    99+
    2023-07-06
  • Python字典的操作方法有哪些
    这篇文章主要讲解了“Python字典的操作方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python字典的操作方法有哪些”吧!Python字典是另一种可变容器模型,且可存储任意类型...
    99+
    2023-07-06
  • Python字典:竟还有我不会的高阶玩法?
    通过序列生成字典我们将下面的序列转换为dict类型。lst = [('a', 1), ('b', 2), ('c', 3)] 普通的写法for k, v in lst: dic[k] = v 更pythonic的写法利用字典推导式快速生成字...
    99+
    2023-05-14
    代码 Python 字典
  • Python的遍历字典的方法有哪些
    这期内容当中小编将会给大家带来有关Python的遍历字典的方法有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚...
    99+
    2023-06-14
  • 使用For循环遍历Python字典的方法有哪些
    本篇内容介绍了“使用For循环遍历Python字典的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在Python中,如何使用“fo...
    99+
    2023-06-30
  • Python中合并字典的方法有哪些
    这篇文章主要讲解了“Python中合并字典的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python中合并字典的方法有哪些”吧!Python字典字典是Python中特有的数据结构...
    99+
    2023-06-16
  • Python字典使用技巧有哪些
    今天小编给大家分享一下Python字典使用技巧有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。字典(Dictionary...
    99+
    2023-06-29
  • Python关于字典的操作方法有哪些
    这篇文章主要讲解了“Python关于字典的操作方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python关于字典的操作方法有哪些”吧!初始化# 最常用这种my_objec...
    99+
    2023-07-05
  • python中可以使用哪些方法创建字典
    python创建字典的方法:1.通过dict关键字创建;2.通过二元组列表创建;3.通过字典推导式创建;4.通过dict.fromkeys()函数创建;在python中创建字典的方法有以下几种通过dict关键字创建>>> ...
    99+
    2024-04-02
  • python把字典写入文件的方法有哪些
    Python有几种方法可以将字典写入文件:1. 使用文件对象的write方法逐行写入字典的键值对。首先将字典转换为字符串格式,然后将...
    99+
    2023-08-08
    python
  • python算阶乘的方法有哪些
    在Python中,可以使用以下几种方法来计算阶乘:1. 使用循环:可以使用for循环或while循环来计算阶乘。例如:```pyth...
    99+
    2023-08-09
    python
  • 常用的python高阶函数有哪些
    常用的Python高阶函数包括:1. map(function, iterable):对可迭代对象中的每个元素应用函数,并返回一个迭...
    99+
    2023-08-09
    python
  • python高阶函数有哪些
    python中的高阶函数有:1.map()函数;2.reduce()函数;3.filter()函数;python中的高阶函数有以下几种map()函数map()函数是python中一个内置的高阶函数,它可以接收一个函数f和一个list,并通过...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作