Home > Backend Development > Python Tutorial > Tips | 11 'Python Dictionary' knowledge points that are easy to use and take off!

Tips | 11 'Python Dictionary' knowledge points that are easy to use and take off!

Release: 2023-08-10 14:55:21
forward
813 people have browsed it


About Python dictionary, it is a very important data type in Python. After you learn the basic knowledge, the concept of dictionary will accompany you in your subsequent study and work.
Therefore, here are several very important knowledge points that everyone needs to know.

Whether the dictionary is unordered

Many friends may not be clear about this concept.
In Python 2.7, dictionaries are unordered structures. The order of dictionary items is out of order. This means that the sequence of items is deterministic and repeatable.
>>> # Python 2.7
>>> a_dict = {'color': 'blue', 'fruit': 'apple', 'pet': 'dog'}
>>> a_dict
{'color': 'blue', 'pet': 'dog', 'fruit': 'apple'}
>>> a_dict
{'color': 'blue', 'pet': 'dog', 'fruit': 'apple'}
Copy after login
In Python 3.5, dictionaries are still unordered, but this time it is a random data structure. This means that every time you rerun the dictionary, you'll get a different order of items.
>>> # Python 3.5
>>> a_dict = {'color': 'blue', 'fruit': 'apple', 'pet': 'dog'}
>>> a_dict
{'color': 'blue', 'pet': 'dog', 'fruit': 'apple'}
>>> a_dict
{'color': 'blue', 'pet': 'dog', 'fruit': 'apple'}
Copy after login
In Python 3.6 and later, dictionaries are ordered data structures, which means that they keep the elements in the same order as they were introduced.
>>> a_dict = {'color': 'blue', 'fruit': 'apple', 'pet': 'dog'}
>>> a_dict
{'color': 'blue', 'fruit': 'apple', 'pet': 'dog'}
>>> a_dict
{'color': 'blue', 'fruit': 'apple', 'pet': 'dog'}
Copy after login

Key value swap

Suppose you have a dictionary and for some reason need to convert keys to values ​​and values ​​to keys ,What should I do?
>>> a_dict = {'one': 1, 'two': 2, 'thee': 3, 'four': 4}
>>> new_dict = {}
>>> for key, value in a_dict.items():
...     new_dict[value] = key
...
>>> new_dict
{1: 'one', 2: 'two', 3: 'thee', 4: 'four'}
Copy after login

Filter the dictionary based on certain conditions

Sometimes, you need to filter the dictionary based on certain conditions. Then it is a good choice to cooperate with if conditional statement.
>>> a_dict = {'one': 1, 'two': 2, 'thee': 3, 'four': 4}
>>> new_dict = {}  # Create a new empty dictionary
>>> for key, value in a_dict.items():
...     if value <= 2:
...         new_dict[key] = value
...
>>> new_dict
{&#39;one&#39;: 1, &#39;two&#39;: 2}
Copy after login

利用字典中的值,做一些计算

在Python中遍历字典时。需要进行一些计算也是很常见的。假设您已将公司销售额的数据存储在字典中,现在您想知道一年的总收入。
>>> incomes = {&#39;apple&#39;: 5600.00, &#39;orange&#39;: 3500.00, &#39;banana&#39;: 5000.00}
>>> total_income = 0.00
>>> for value in incomes.values():
...     total_income += value  # Accumulate the values in total_income
...
>>> total_income
14100.0
Copy after login

字典推导式

字典推导式,是一个和列表推导式一样,具有很强大功能的知识点。因此,大家一定要掌握。
例如,假设您有两个数据列表,您需要根据它们创建一个新字典。
>>> objects = [&#39;blue&#39;, &#39;apple&#39;, &#39;dog&#39;]
>>> categories = [&#39;color&#39;, &#39;fruit&#39;, &#39;pet&#39;]
>>> a_dict = {key: value for key, value in zip(categories, objects)}
>>> a_dict
{&#39;color&#39;: &#39;blue&#39;, &#39;fruit&#39;: &#39;apple&#39;, &#39;pet&#39;: &#39;dog&#39;}
Copy after login

利用字典推导式,实现键值转换

你会发现,使用字典推导式,是一个更简单、高效的操作。
>>> a_dict = {&#39;one&#39;: 1, &#39;two&#39;: 2, &#39;thee&#39;: 3, &#39;four&#39;: 4}
>>> new_dict = {value: key for key, value in a_dict.items()}
>>> new_dict
{1: &#39;one&#39;, 2: &#39;two&#39;, 3: &#39;thee&#39;, 4: &#39;four&#39;}
Copy after login

利用字典推导式,过滤字典

>>> a_dict = {&#39;one&#39;: 1, &#39;two&#39;: 2, &#39;thee&#39;: 3, &#39;four&#39;: 4}
>>> new_dict = {k: v for k, v in a_dict.items() if v <= 2}
>>> new_dict
{&#39;one&#39;: 1, &#39;two&#39;: 2}
Copy after login

利用字典推导式,做一些计算

>>> incomes = {&#39;apple&#39;: 5600.00, &#39;orange&#39;: 3500.00, &#39;banana&#39;: 5000.00}
>>> total_income = sum([value for value in incomes.values()])
>>> total_income
14100.0
Copy after login

字典排序

从 Python 3.6 开始,字典是有序的数据结构,因此如果您使用 Python 3.6(及更高版本),您将能够通过使用sorted()并借助字典理解对任何字典的键,进行排序。
>> incomes = {&#39;apple&#39;: 5600.00, &#39;orange&#39;: 3500.00, &#39;banana&#39;: 5000.00}
>>> sorted_income = {k: incomes[k] for k in sorted(incomes)}
>>> sorted_income
{&#39;apple&#39;: 5600.0, &#39;banana&#39;: 5000.0, &#39;orange&#39;: 3500.0}
Copy after login

内置函数,与字典配合使用

Python 提供了一些内置函数,这些函数在您处理集合(如字典)时可能会很有用。

map()函数

假设您有一个包含一堆产品价格的字典,并且您需要对它们应用折扣。
>>> prices = {&#39;apple&#39;: 0.40, &#39;orange&#39;: 0.35, &#39;banana&#39;: 0.25}
>>> def discount(current_price):
...     return (current_price[0], round(current_price[1] * 0.95, 2))
...
>>> new_prices = dict(map(discount, prices.items()))
>>> new_prices
{&#39;apple&#39;: 0.38, &#39;orange&#39;: 0.33, &#39;banana&#39;: 0.24}
Copy after login

filter()函数

假设您想知道单价低于0.40的产品。
>>> prices = {&#39;apple&#39;: 0.40, &#39;orange&#39;: 0.35, &#39;banana&#39;: 0.25}
>>> def has_low_price(price):
...     return prices[price] < 0.4
...
>>> low_price = list(filter(has_low_price, prices.keys()))
>>> low_price
[&#39;orange&#39;, &#39;banana&#39;]
Copy after login

字典解包运算符

这是很多人不清楚的概念,Python 3.5 带来了一个有趣的新特性,因此大家需要着重学习。
您可以使用字典解包运算符 ( **) 将两个字典合并为一个新字典。
>>> vegetable_prices = {&#39;pepper&#39;: 0.20, &#39;onion&#39;: 0.55}
>>> fruit_prices = {&#39;apple&#39;: 0.40, &#39;orange&#39;: 0.35, &#39;pepper&#39;: .25}
>>> {**vegetable_prices, **fruit_prices}
{&#39;pepper&#39;: 0.25, &#39;onion&#39;: 0.55, &#39;apple&#39;: 0.4, &#39;orange&#39;: 0.35}
Copy after login
如果您尝试合并的字典,具有重复或公共键,则最右侧字典的值将补充上。

The above is the detailed content of Tips | 11 'Python Dictionary' knowledge points that are easy to use and take off!. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:Python当打之年
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template