Python的字典操作

 

Python的字典操作

Python提供了多种应用于字典的操作。因为字典为容器,内建len函数可以将字典当作单一参数使用听切返回字典对象中项目(键/值对)的数目。

字典会员

在Python2.2以及后面版本,D中的k运算符检测是否对象k是字典D中的键。如果是返回True如果不是返回False。相似的,

索引一个字典

字典D中的值与相关的键k被索引表示为:D[k]。索引字典没有的键会引起意外。例如:

d = { 'x':42, 'y':3.14, 'z':7 } 
d['x'] # 42
d['z'] # 7
d['a'] # raises exception

平整赋值到一个使用还不在字典中的键的索引(例如,D[newkey]=value)是一个可行的操作,该操作加载键和值到字典里新的项目中。例如:

d = { 'x':42, 'y':3.14, 'z':7 } 
d['a'] = 16 # d is now {'x':42,'y':3.14,'z':7,'a':16}

del D[k]中的del语句,删除字典中拥有键k的项目。如果k不是字典D中的键,del D[k]就会引起意外。

字典方法

字典对象提供了多种方法,如下表格所示。非变异方法返回结果,但不改变它们使用的对象。在下面列表中,D和D1代表任何字典对象,k代表D中任何有效的键,x为任何对象。

方法描述
Non-mutating methods
D.copy( )Returns a (shallow) copy of the dictionary
D.has_key(k)Returns True if k is a key in D, otherwise returns False
D.items( )Returns a copy of the list of all items (key/value pairs) in D
D.keys( )Returns a copy of the list of all keys in D
D.values( )Returns a copy of the list of all values in D
D.iteritems( )Returns an iterator on all items(key/value pairs) in D
D.iterkeys( )Returns an iterator on all keys in D
D.itervalues( )Returns an iterator on all values in D
D.get(k[,x])Returns an iterator on all values in D
Mutating methods
D.clear( )Removes all items from D
D.update(D1)For each k in D1, sets D[k] equal to D1[k]
D.setdefault(k[,x])Returns D[k] if k is a key in D; otherwise sets D[k] equal to x and returns x
D.popitem( )Removes and returns an arbitrary item (key/value pair)

项目,键还有值方法以任意排列返回它们的列表结果。然而,如果不加干预的呼叫字典中中任何方法,结果的顺序一样。iteritems,iterkeys, 以及itervalues方法,对于Python2.2是新的,它们返回相当于这些列表的迭代器。迭代器比列表消费更少内存,但是在当迭代一个迭代器时不允许修改字典。然而,迭代列表返回项目,键或值不会传递这种限制。直接迭代字典D就如同迭代于D.terkeys( )一样。

popitem方法可以是用于毁灭性迭代到字典。项目和popitem都返回字典项目为键/值对,但使用popitem消耗更少内存,就如同它并不依赖单 独的项目列表。如果当循环时可以摧毁字典,节约内存使得在重复巨大字典中可以使用惯用语。在Python2.2及以后版本,当循环是直接迭代字典(或 iterkeys或iteritems)也会消耗适度的内存,而且不会摧毁被迭代的的字典。

setdefault方法返回与get相同的结果,但如果k不是D的键,setdefault还会有綁定D[k]到x值的副作用。
#---------------------------------------------------------------------------------------------

a ={'a':'1','b':'2','c':'3'}

>>> print a.items()
[('a', '1'), ('c', '3'), ('b', '2')]
>>> print a.keys()
['a', 'c', 'b']

>>> print a.values()
['1', '3', '2']

>>> print a.has_key('b')
True

Python 字典是一种非常灵活的数据结构,支持多种常见操作,包括增删改查等。以下是详细的教程说明: ### 增加键值对 可以通过直接赋值的方式向字典中添加新的键值对。如果键不存在,则会创建新的键值对;如果键已经存在,则会更新对应的值。 ```python my_dict = {} my_dict['key1'] = 'value1' # 添加键值对 my_dict['key2'] = 'value2' ``` ### 删除键值对 可以使用 `del` 语句删除字典中的特定键值对。如果键不存在,会引发 `KeyError` 异常。 ```python del my_dict['key1'] # 删除键值对 ``` ### 修改键值对 修改字典中的值非常简单,只需要通过键来指定新的值即可。 ```python my_dict['key2'] = 'new_value2' # 修改键值对 ``` ### 查询键值对 可以通过键来查询字典中的值。如果键不存在,会引发 `KeyError` 异常。为了避免这种情况,可以使用 `get` 方法,如果键不存在,返回 `None` 或者指定的默认值。 ```python value = my_dict['key2'] # 查询键值对 value = my_dict.get('key3') # 如果键不存在,返回 None value = my_dict.get('key3', 'default_value') # 如果键不存在,返回 'default_value' ``` ### 遍历字典 可以使用 `for` 循环遍历字典的键、值或者键值对。 ```python for key in my_dict: print(key, my_dict[key]) for key, value in my_dict.items(): print(key, value) ``` ### 检查键是否存在 可以使用 `in` 运算符检查字典中是否存在某个键。 ```python if 'key2' in my_dict: print('Key exists') ``` ### 获取所有键或值 可以使用 `keys` 和 `values` 方法获取字典的所有键或值。 ```python keys = my_dict.keys() # 获取所有键 values = my_dict.values() # 获取所有值 ``` ### 清空字典 可以使用 `clear` 方法清空字典中的所有键值对。 ```python my_dict.clear() ``` ### 合并两个字典 可以使用 `update` 方法将一个字典的内容合并到另一个字典中。 ```python dict1 = {'a': 1, 'b': 2} dict2 = {'b': 3, 'c': 4} dict1.update(dict2) # 合并字典,如果有重复键,后面的字典的值会覆盖前面的 ``` ### 创建字典的副本 可以使用 `copy` 方法创建字典的一个浅拷贝。 ```python dict_copy = my_dict.copy() ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值