Python:Dictionary用法与示例速查整理

 相关资料地址:gto76/python-cheatsheet: Comprehensive Python Cheatsheet (github.com)


目录

一、Dict的创建

1、dict的用法示例

(1)使用dict通过带参方式创建

(2)使用dict通过zip拼接方式来创建

2、dict.fromkeys的用法示例(生成所有键的值均为value的字典)

3、defaultdict的用法示例

二、Dict的元素添加、修改、删除        

1、Dict的元素添加与修改

(1)直接添加与直接修改

(2)update的用法示例(使用update添加与修改)

2、Dict元素的删除 

(1)pop的用法示例

三、Dict的元素查询

1、keys的用法示例(查询所有键)

2、values的用法示例(查询所有值)

3、items的用法示例

4、get的用法示例(根据key来获取值)

5、setdefault的用法示例

四、Dict的其他用法示例

1、生成相同value值的key集合

2、筛选对应key的键值对到新的字典中


一、Dict的创建

示例:

<dict> = dict(<collection>)                     # Creates a dict from coll. of key-value pairs.
<dict> = dict(zip(keys, values))                # Creates a dict from two collections.
<dict> = dict.fromkeys(keys [, value])          # Creates a dict from collection of keys.
<dict> = collections.defaultdict(<type>)        # Creates a dict with default value of type.
<dict> = collections.defaultdict(lambda: 1)     # Creates a dict with default value 1.

用法:

1、dict的用法示例

(1)使用dict通过带参方式创建

# <dict> = dict(<collection>)                     # Creates a dict from coll. of key-value pairs.

# dict的通过带参方式创建
my_dict = dict(a=1, b=2)
print(my_dict)
# {'a': 1, 'b': 2}

(2)使用dict通过zip拼接方式来创建

# <dict> = dict(zip(keys, values))                # Creates a dict from two collections.

# dict通过zip拼接来创建
keys = [0, 1, 2, 3]
values = ['a', 'b', 'c', 'd']
my_dict = dict(zip(keys, values))
print(my_dict)
# {0: 'a', 1: 'b', 2: 'c', 3: 'd'}

2、dict.fromkeys的用法示例(生成所有键的值均为value的字典)

# <dict> = dict.fromkeys(keys [, value])          # Creates a dict from collection of keys.

# 使用fromkeys创建默认值为value的字典
keys = [0, 1, 2, 3]
value = 'a'
my_dict = dict.fromkeys(keys, value)
print(my_dict)
# {0: 'a', 1: 'a', 2: 'a', 3: 'a'}

 3、defaultdict的用法示例

查询不存在key的时候

  • dict:返回KeyError
  • defaultdict:返回元素类型
# defaultdict的用法
import collections

my_list = [1 ,2 ,3 ,4 ,5]
my_dict1 = collections.defaultdict(int)
my_dict2 = collections.defaultdict(list)
my_dict3 = collections.defaultdict(str)
my_dict4 = collections.defaultdict(set)

print(my_dict1)
print(my_dict2)
print(my_dict3)
print(my_dict4)
# defaultdict(<class 'int'>, {})
# defaultdict(<class 'list'>, {})
# defaultdict(<class 'str'>, {})
# defaultdict(<class 'set'>, {})


# 查询不存在的key
print(my_dict1[1])
print(my_dict2[1])
print(my_dict3[1])
print(my_dict4[1])
# 0
# []
# 
# set()

二、Dict的元素添加、修改、删除        

示例:

<dict>.update(<dict>)                           # Adds items. Replaces ones with matching keys.
value = <dict>.pop(key)                         # Removes item or raises KeyError.

用法:

1、Dict的元素添加与修改

(1)直接添加与直接修改

# 直接添加
my_dict = {0:'a', 1:'b', 2:'c', 3:'d', 4:'e'}
my_dict[5] = 'f'
print(my_dict)
# {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f'}

# 直接修改
my_dict = {0:'a', 1:'b', 2:'c', 3:'d', 4:'e'}
my_dict[0] = 'f'
print(my_dict)
# {0: 'f', 1: 'b', 2: 'c', 3: 'd', 4: 'e'}

(2)update的用法示例(使用update添加与修改)

# <dict>.update(<dict>)                           # Adds items. Replaces ones with matching keys.

# update的用法1:更新最新key对应的值
my_dict = {0:'a', 1:'b', 2:'c', 3:'d', 4:'e'}
update_dict = {0:'a', 1:'b', 2:'c', 3:'d', 4:'f'}
my_dict.update(update_dict)
print(my_dict)
# {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'f'}


# update的用法2:若有新的键值对,则更新新的键值对
my_dict = {0:'a', 1:'b', 2:'c', 3:'d', 4:'e'}
update_dict = {0:'a', 1:'b', 2:'c', 3:'d', 4:'e', 5:'f'}
my_dict.update(update_dict)
print(my_dict)
# {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f'}


# update的用法3:若更新空字典,则无改变
my_dict = {0:'a', 1:'b', 2:'c', 3:'d', 4:'e'}
update_dict = {}
my_dict.update(update_dict)
print(my_dict)
# {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e'}

2、Dict元素的删除 

(1)pop的用法示例

# value = <dict>.pop(key)                         # Removes item or raises KeyError.

my_dict = {0:'a', 1:'b', 2:'c', 3:'d', 4:'e'}
my_dict.pop(0)
print(my_dict)
# {1: 'b', 2: 'c', 3: 'd', 4: 'e'}

三、Dict的元素查询

示例:

<view> = <dict>.keys()                          # Coll. of keys that reflects changes.
<view> = <dict>.values()                        # Coll. of values that reflects changes.
<view> = <dict>.items()                         # Coll. of key-value tuples that reflects chgs.
value  = <dict>.get(key, default=None)          # Returns default if key is missing.
value  = <dict>.setdefault(key, default=None)   # Returns and writes default if key is missing.

用法:

1、keys的用法示例(查询所有键)

# <view> = <dict>.keys()                          # Coll. of keys that reflects changes.

# keys的用法
my_dict = {0:'a', 1:'e', 2:'c', 4:'f', 3:'b'}
my_keys = my_dict.keys()
print(my_keys)
# dict_keys([0, 1, 2, 4, 3])

2、values的用法示例(查询所有值)

# <view> = <dict>.values()                        # Coll. of values that reflects changes.

# values的用法
my_dict = {0:'a', 1:'e', 2:'c', 4:'f', 3:'b'}
my_values = my_dict.values()
print(my_values)
# dict_values(['a', 'e', 'c', 'f', 'b'])

3、items的用法示例

# <view> = <dict>.items()                         # Coll. of key-value tuples that reflects chgs.

# items的用法
my_dict = {0:'a', 1:'e', 2:'c', 4:'f', 3:'b'}
my_items = my_dict.items()
print(my_items)
# dict_items([(0, 'a'), (1, 'e'), (2, 'c'), (4, 'f'), (3, 'b')])

4、get的用法示例(根据key来获取值)

# value  = <dict>.get(key, default=None)          # Returns default if key is missing.

# get的用法1
my_dict = {0:'a', 1:'e', 2:'c', 4:'f', 3:'b'}
my_value = my_dict.get(1)
print(my_value)
# e

# get的用法2
my_dict = {0:'a', 1:'e', 2:'c', 4:'f', 3:'b'}
my_value = my_dict.get(5)
print(my_value)
# None

my_value = my_dict.get(5, 'error')
print(my_value)
# error

5、setdefault的用法示例

# value  = <dict>.setdefault(key, default=None)   # Returns and writes default if key is missing.

# setdefault的用法1:若存在key,则返回对应值
my_dict = {0:'a', 1:'e', 2:'c', 4:'f', 3:'b'}
my_value = my_dict.setdefault(3, 'h')
print(my_value)
print(my_dict)
# b
# {0: 'a', 1: 'e', 2: 'c', 4: 'f', 3: 'b'}


# setdefault的用法2:若不存在key,则添加对应值
my_dict = {0:'a', 1:'e', 2:'c', 4:'f', 3:'b'}
my_value = my_dict.setdefault(5, 'error')
print(my_value)
print(my_dict)

四、Dict的其他用法示例

1、生成相同value值的key集合

# {k for k, v in <dict>.items() if v == value}    # Returns set of keys that point to the value.

# 生成相同value的key集合
my_dict = {0:'a', 1:'a', 2:'a', 3:'d', 4:'e'}
new_set = {k for k, v in my_dict.items() if v == 'a'}
print(new_set)
# {0, 1, 2}

 2、筛选对应key的键值对到新的字典中

# {k: v for k, v in <dict>.items() if k in keys}  # Returns a dictionary, filtered by keys.

# 筛选对应key的键值对到新的字典中
my_dict = {0:'a', 1:'b', 2:'c', 3:'d', 4:'e'}
keys = [0, 1, 2]
new_dict = {k:v for k, v in my_dict.items() if k in keys}
print(new_dict)
# {0: 'a', 1: 'b', 2: 'c'}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不吃鱼的猫丿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值