Python字典使用技巧详解

 更新时间:2022年11月14日 10:47:47   作者:赵卓不凡  
Python 中字典和集合也是非常相近的概念,而且从外观看上去,也有那么一丝丝的相似。本文将从字典基本知识入手,为你展开字典类型数据的各个知识点,需要的可以参考一下

1. 引言

在日常工作中,大家都需要进行字典的相关操作,对于某些初学者,经常会写一堆繁琐的代码来实现某项简单的功能。本篇文章重点介绍一些在Python中关于字典的一些简单技巧,熟练掌握相关技巧可以极大提升大家的工作效率。

闲话少说,我们直接开始吧!

2. 使用union操作合并字典

当然我们可以使用for循环来组合不同字典中的元素,但是在使用Python3.9之后,我们可以方便的使用union操作来进行字典的合并。

样例代码如下:

cities_us = {'New York City': 'US', 'Los Angeles': 'US'}
cities_uk = {'London': 'UK', 'Birmingham': 'UK'}
cities = cities_us|cities_uk
print(cities)
# {'New York City': 'US', 'Los Angeles': 'US', 'London': 'UK', 'Birmingham': 'UK'}

当然我们也可以使用|= 来实现,如下:

cities_us = {'New York City': 'US', 'Los Angeles': 'US'}
cities_uk = {'London': 'UK', 'Birmingham': 'UK'}
cities_us |= cities_uk
print(cities_us)
# {'New York City': 'US', 'Los Angeles': 'US', 'London': 'UK', 'Birmingham': 'UK'}

3. 使用解包操作合并字典

考虑到使用union操作的简洁性,我经常尽可能的使用该操作进行字典的合并操作。但是,如果我们使用的是Python3.9以下的版本,有没有其他简洁的方式来实现上述字典合并功能呢?

当然是存在的,此时推荐使用解包操作来实现。

样例如下:

cities_1 = {'New York City': 'US', 'Los Angeles': 'US'}
cities_2 = {'London': 'UK', 'Birmingham': 'UK'}
cities = {**cities_1, **cities_2}
print(cities)
# {'New York City': 'US', 'Los Angeles': 'US', 'London': 'UK', 'Birmingham': 'UK'}

4. 使用字典生成式

与Python中的列表生成式一样,字典生成式也是创建字典的一种简便的方法,它为我们提供了筛选数据的灵活性。

字典生成式的一般范式为:

D = {<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E-->key: value for key,value in iterable (if condition)}

我们可以通过下方例子来体检一下字典生成式的强大,如下:

cities = ['London', 'New York', 'Tokyo', 'Cambridge', 'Oxford']
countries = ['UK', 'US', 'Japan', 'UK', 'UK']
uk_cities = {city: country for city, country in zip(cities, countries) if country == 'UK'}
print(uk_cities)
# {'London': 'UK', 'Cambridge': 'UK', 'Oxford': 'UK'}

5. 字典中key-value互换

在某些情形下,我们需要互换字典中的key-value,当然有各种各样的策略来实现上述功能。

以下是我比较推荐的两种实现,如下:

cities = {<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E-->'London': 'UK', 'Tokyo': 'Japan', 'New York': 'US'}

方案一:

reversed_cities = {v: k for k, v in cities.items()}
print(reversed_cities)
# {'UK': 'London', 'Japan': 'Tokyo', 'US': 'New York'}

方案二:

reversed_cities = dict(zip(cities.values(), cities.keys()))
print(reversed_cities)

6. 列表转为字典

列表也是Python中最常使用的数据结构之一,在某些情形下,我们需要将列表转化为字典。这里我们分情况来讨论:

假如列表中包含key和value,此时可以直接使用dict来生成相应的对象,如下:

cities = [('London', 'UK'), ('New York', 'US'), ('Tokyo', 'Japan')]
d_cities = dict(cities)
print(d_cities)
# {'London': 'UK', 'New York': 'US', 'Tokyo': 'Japan'}

如果列表中只含有key,需要统一赋值某value,此时一般使用dict.fromkeys 方法来实现,如下:

cities = ['London', 'Leeds', 'Birmingham']
d_cities = dict.fromkeys(cities,'UK') # set the default value to 'UK' 
print(d_cities)
# {'London': 'UK', 'Leeds': 'UK', 'Birmingham': 'UK'}

7. 字典按照value来排序

使用一行代码来实现字典按照value排序,可以借助lambda来实现,样例如下:

cities = {'London': '2', 'Tokyo': '3', 'New York': '1'}
print(sorted(cities.items(),key=lambda d:d[1]))
# [('New York', '1'), ('London', '2'), ('Tokyo', '3')]

8. 使用Counter

如果我们需要知道在字符串中每个字母使用了多少次,最直观的方法可能是编写一个for循环来遍历所有字母并进行统计。

但如果我们知道Counter,则上述任务将变得异常简单:

from collections import Counter
city = "Yang Zhou"
chars = Counter(city)
print(chars)
# Counter({'Y': 1, 'a': 1, 'n': 1, 'g': 1, ' ': 1, 'Z': 1, 'h': 1, 'o': 1, 'u': 1})

顾名思义,Counter对象帮助我们完成字符统计部分,并将结果保存为字典。如果我们能在类似的使用场景中记住这个特殊的dict,那么可以节省大量的代码编写时间。

9. 总结

本文重点介绍了Python中字典操作的相关技巧,并针对性的给出了相关示例和代码实现。最后,送给大家两句话共勉:

学习Python意味着我们可以编写返回正确结果的程序。

掌握Python意味着我们可以以优雅、整洁和Pythonic的方式编写相同的程序。

到此这篇关于Python字典使用技巧详解的文章就介绍到这了,更多相关Python字典内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Python实现博客上进行自动翻页

    使用Python实现博客上进行自动翻页

    这篇文章主要介绍了使用Python实现博客上进行自动翻页,需要的朋友可以参考下
    2017-08-08
  • python 字符串格式化的示例

    python 字符串格式化的示例

    这篇文章主要介绍了python 字符串格式化的示例,帮助大家更好的理解和使用python处理字符串,感兴趣的朋友可以了解下
    2020-09-09
  • python3 selenium自动化 下拉框定位的例子

    python3 selenium自动化 下拉框定位的例子

    今天小编就为大家分享一篇python3 selenium自动化 下拉框定位的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Django 权限管理(permissions)与用户组(group)详解

    Django 权限管理(permissions)与用户组(group)详解

    这篇文章主要介绍了Django 权限管理(permissions)与用户组(group)详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • python计算牛顿迭代多项式实例分析

    python计算牛顿迭代多项式实例分析

    这篇文章主要介绍了python计算牛顿迭代多项式的方法,涉及Python数学运算的相关技巧,需要的朋友可以参考下
    2015-05-05
  • Python 中enum的使用方法总结

    Python 中enum的使用方法总结

    这篇文章主要介绍了Python 中enum的使用方法总结,枚举在许多编程语言中常被表示为一种基础的数据结构使用,下文更多详细内容需要的小伙伴可以参考一下
    2022-03-03
  • 对于Python中RawString的理解介绍

    对于Python中RawString的理解介绍

    下面小编就为大家带来一篇对于Python中RawString的理解介绍。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • 如何用python处理excel表格

    如何用python处理excel表格

    在本篇文章里小编给大家整理了关于python处理excel表格的详细步骤内容,需要的朋友们可以参考下。
    2020-06-06
  • Python hashlib模块的使用示例

    Python hashlib模块的使用示例

    这篇文章主要介绍了Python hashlib模块的相关资料,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-10-10
  • PyGame贪吃蛇的实现代码示例

    PyGame贪吃蛇的实现代码示例

    贪吃蛇是款经典游戏,本文将带你一步步用python语言实现一个贪吃蛇小游戏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11

最新评论