字典是一种键值对key-value pair数据结构, 用key查询到对应的值value, 但不能用value查到对应的key。但有时我们面对的分析任务,需要用value查到对应的key, bidict可以帮我们实现这一特性。


一、安装

pip install bidict

二、快速开始

2.1 基本操作

from bidict import bidict

test_data = bidict({
   '华为': 'Huawei',
   '比亚迪': 'BYD',
   '吉利': 'Geely',
   '微软': 'Microsoft',
   '苹果': 'Apple'
})

print(test_data['华为'])
print(test_data.inverse['Microsoft'])

Run

Huawei
微软

2.2 get方法

跟Python字典类似,如果字典中没有对应的key,直接查询会出现KeyError错误。

test_data['三星']

Run

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
Cell In[5], line 1
----> 1 test_data['三星']

File /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/bidict/_base.py:523, in BidictBase.__getitem__(self, key)
    521 def __getitem__(self, key: KT) -> VT:
    522     """*x.__getitem__(key) ⟺ x[key]*"""
--> 523     return self._fwdm[key]

KeyError: '三星'


使用get方法则可避免错误发生。

test_data.get('三星', 'missing')

Run

missing

2.3 update方法

update方法可以用来

  • 更改key的value
  • 新增key-value-pair
#更新值
test_data.update(华为='HUAWEI')

#新增key-value-pair
test_data.update(三星='Samsung')


print(test_data['华为'])
print(test_data['三星'])

Run

HUAWEI
Samsung

2.4 pop方法

test_data.pop('三星')

Run

'Samsung'

此时再查看会发现test_data已经没有了三星相关的键值对

test_data

Run

bidict({'华为': 'HUAWEI', 
'比亚迪': 'BYD', 
'吉利': 'Geely', 
'微软': 'Microsoft', 
'苹果': 'Apple'})



广而告之