• 运维特工,战胜心魔!!
  • 有些事情其实没有那么难,只是我们感觉难,走出第一步!
  • 你所浪费的今天,是昨天死去的人奢望的明天!!!
  • 欢迎访问 unixfbi.com 运维特工社区http://unixfbi.com/
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧
  • 运维特工:http://www.unixfbi.com
  • 人生没有白走的路,每一步都算数!!
  • 空杯心态,沉淀自己!

Python-字典

Python unixfbi 1年前 (2018-08-12) 3733次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

Python-字典

一、字典介绍

字典在其它编程语言中又称作关联数组或散列表;
字典是另一种可变容器模型,且可存储任意类型对象。
通过键实现元素存取;无序集合;可变类型容器,长度可变,异构,嵌套;
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中

>>> d = { 'key1':'value1','key2':'value2' }

字典两个特性:
(1)键必须是唯一的,如果重复,最后的一个键值对会替换前面的,但值则不必唯一。
(2)键必须是不可变的,如字符串,数字或元组,不能使用列表作为键。值可以取任何数据类型,

二、常用操作

1.创建字典

>>> dict1 = { 'a': 1, 'b': 2, 'c': 3 }
>>> dict2 = { 1: 'a', 34.5: 'b' }
>>> dict1
{'a': 1, 'b': 2, 'c': 3}
>>> dict2
{1: 'a', 34.5: 'b'}

2.字典添加 key/value

>>> dict1 = { 'a': 1, 'b': 2, 'c': 3 }
>>> dict1['d'] = 4
>>> dict1
{'a': 1, 'b': 2, 'c': 3, 'd': 4}

3.获取字典里元素

方法一:
把相应的键放入方括号[]里,即可获得相应的 value:

>>> dict1 = { 'a': 1, 'b': 2, 'c': 3 }
>>> dict1['a']
1
>>> dict1['c']
3

如果访问不存在的 key,那么会报错。
方法二:
使用get()方法:
访问的 key 不存在也不会报错,返回 None;

>>> dict1 = { 'a': 1, 'b': 2, 'c': 3 }
>>> dict1.get('b')
2
>>> dict1.get('d')
>>> print(dict1.get('d'))
None

4.修改字典元素

>>> dict1 = { 'a': 1, 'b': 2, 'c': 3 }
>>> 
>>> dict1['b'] = 10
>>> dict1
{'a': 1, 'b': 10, 'c': 3}

5.删除字典元素

删除一个指定元素:
方法一:

>>> dict1 = { 'a': 1, 'b': 2, 'c': 3 }
>>> del dict1['b']
>>> dict1
{'a': 1, 'c': 3}

方法二:
使用pop()方法;

>>> dict1 = { 'a': 1, 'b': 2, 'c': 3 }
>>> dict1.pop('b')
2
>>> dict1
{'a': 1, 'c': 3}
>>> dict1.pop()   
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: pop expected at least 1 arguments, got 0

随机删除一对 key/value 元素:
使用popitem()方法,随机返回并删除字典中的一对键和值。

>>> dict1 = { 'a': 1, 'b': 2, 'c': 3 }
>>> dict1.popitem()
('c', 3)
>>> dict1
{'a': 1, 'b': 2}

删除字典所有元素:
使用clear()方法;

>>> dict1 = { 'a': 1, 'b': 2, 'c': 3 }
>>> dict1.clear()
>>> dict1
{}

6.以列表形式显示 key 或 value

以列表形式显示 key:
使用keys()方法;
python3 效果

>>> dict1 = { 'a': 1, 'b': 2, 'c': 3 }
>>> dict1.keys()
dict_keys(['a', 'b', 'c'])
>>> list(dict1.keys())
['a', 'b', 'c']

python2 效果:

>>> dict1 = { 'a': 1, 'b': 2, 'c': 3 }
>>> dict1.keys()
['a', 'c', 'b']

以列表形式显示 value:
使用values()方法:

>>> dict1 = { 'a': 1, 'b': 2, 'c': 3 }
>>> dict1.values()
dict_values([1, 2, 3])
>>> list(dict1.values())
[1, 2, 3]

7.把一个字典添加到另一个字典中

>>> dict1 = { 'a': 1, 'b': 2, 'c': 3 }
>>> dict2 = { 1: 'A', 2: 'B', 3: 'C'}
>>> dict1.update(dict2)
>>> dict1
{'a': 1, 'b': 2, 'c': 3, 1: 'A', 2: 'B', 3: 'C'}

三、字典方法

clear():删除字典中所有元素
clear(...)
D.clear() -> None. Remove all items from D.

copy():返回一个字典的浅复制
copy(...)
D.copy() -> a shallow copy of D·

get():返回指定键的值,如果值不在字典中返回None
get(self, key, default=None, /)
Return the value for key if key is in the dictionary, else default.

items():以列表形式返回可遍历的(键,值)元组数组。
items(...)
D.items() -> a set-like object providing a view on D's items

举例:
python2:

>>> dict1 = { 'a': 1, 'b': 2, 'c': 3 }
>>> dict1.items()
[('a', 1), ('c', 3), ('b', 2)]

python3:

>>> dict1 = { 'a': 1, 'b': 2, 'c': 3 }
>>> dict1.items()
dict_items([('a', 1), ('b', 2), ('c', 3)])

keys():以列表返回一个字典所有的 key。
keys(...)
D.keys() -> a set-like object providing a view on D's keys

pop():删除字典给定键 key 所对应的值,返回值为被删除的值。key 值必须给出。 否则,返回 default 值。
pop(...)
D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
If key is not found, d is returned if given, otherwise KeyError is raised

popitem():随机返回并删除字典中的一对键和值。
popitem(...)
D.popitem() -> (k, v), remove and return some (key, value) pair as a
2-tuple; but raise KeyError if D is empty.

setdefault():插入 key/value,如果不存在于字典中,将会添加 key,并把 value 设置为 None,也可以指定 value。
setdefault(self, key, default=None, /)
Insert key with a value of default if key is not in the dictionary.

>>> dict1 = { 'a': 1, 'b': 2, 'c': 3 }
>>> dict1.setdefault('d')
>>> dict1
{'a': 1, 'b': 2, 'c': 3, 'd': None}
>>> dict1.setdefault('e',4)
4
>>> dict1
{'a': 1, 'b': 2, 'c': 3, 'd': None, 'e': 4}
>>> dict1.setdefault('b',4)
2
>>> dict1
{'a': 1, 'b': 2, 'c': 3, 'd': None, 'e': 4}

update():把一个字典的 key/value 对更新到另一个 dict 里
update(...)
D.update([E, ]**F) -> None. Update D from dict/iterable E and F.
If E is present and has a .keys() method, then does: for k in E: D[k] = E[k]
If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v
In either case, this is followed by: for k in F: D[k] = F[k]

>>> dict1 = { 'a': 1, 'b': 2, 'c': 3 }
>>> dict2 = { 'A': 1, 'B': 2 }
>>> dict1.update(dict2)
>>> dict1
{'a': 1, 'b': 2, 'c': 3, 'A': 1, 'B': 2}

values():以列表返回字典中的所有值
values(...)
D.values() -> an object providing a view on D's values

>>> dict1 = { 'a': 1, 'b': 2, 'c': 3 }
>>> dict1.values()
dict_values([1, 2, 3])

has_key():查看字典中是否存在这个 key。python3 里面已经没有这个方法了。
那么在 python3 中如何判断字典中是否存在指定的 key 呢?
我们可以使用下面的方法:
key in dict: Python 字典 in 操作符用于判断键是否存在于字典中,如果键在字典 dict 里返回 true,否则返回 false。

>>> dict1 = { 'a': 1, 'b': 2, 'c': 3 }
>>> 'a' in dict1
True
>>> 'e' in dict1  
False

参考文档

http://www.runoob.com/python3/python3-dictionary.html
https://www.w3cschool.cn/python3/python3-dictionary.html


UnixFBI 运维特工 , 版权所有丨如未注明 , 均为原创丨 转载请务必注明原文链接http://www.unixfbi.com/556.html
喜欢 (0)
[支付宝]
分享 (0)
unixfbi
关于作者:
运维工程师一枚,做有价值的事情!
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址