python字典学习

python字典学习

  • 字典 dict
  • 字典表示方式
  • 初始化字典
  • 获取键值
  • del 语句删除字典的元素
  • 字典的 in / not in 运算符
  • 字典的迭代访问
  • 可以用于字典的内建函数
  • 字典的方法

字典 dict

  1. 字典是一种可变的容器,可以存储任意类型的数据
  2. 字典中的每个数据都是用’键’(key) 进行索引,而不像序列可以用下标来进行索引
  3. 字典的数据没有先后顺序关系,字典的存储是无序的
  4. 字典中的数据以键(key)-值(value)对进行映射存储
  5. 字典的键不能重复,且只能用不可变类型作为字典的键

字典表示方式

  • 用 {} 括起来,以冒号(? 分隔键-值对, 各键值对用分号分隔开
  • 创建空字典
    d = {}
  • 创建非空字典
    d = {'name': 'tarena', 'age': 15}
    d = {'姓名': '小张'}
    d = {1:'壹', 2:'贰'}

初始化字典

Python可以在创建字典的时候初始化字典

>>> info = {"name" : 'cold'}
>>> info = dict(name = 'cold')       # 更优雅

很明显第二种方法更加的优雅和减少一些特殊字符的输入,但是有种情况第二种不能胜任

>>> key = 'name'
>>> info = { key :'cold'}  # {'name':'cold'}
>>> info = dict(key = 'cold') # {'key': 'cold'}

明显第二种方法就会引发一个不容易找到的bug

Python字典还有一种初始化方式,就是使用字典的fromkeys方法可以从列表中获取元素作为键并用None或fromkeys方法的第二个参数初始化

>>> info = {}.fromkeys(['name', 'blog'])
>>> info
{'blog': None, 'name': None}
>>> info = dict().fromkeys(['name', 'blog'])
>>> info
{'blog': None, 'name': None}
>>> info = dict().fromkeys(['name', 'blog'], 'linuxzen.com')
>>> info
{'blog': 'linuxzen.com', 'name': 'linuxzen.com'}

获取键值

字典可以这样获取到键的值

>>> info = {'name':'cold', 'blog':'linuxzen.com'}
>>> info['name']
'cold'

但是如果获取不存在的键的值就会触发的一个KeyError异常,字典有一个get方法,可以使用字典get方法更加优雅的获取字典

>>> info = dict(name= 'cold', blog='www.linuxzen.com')
>>> info.get('name')
'cold'
>>> info.get('blogname')
None
>>> info.get('blogname', 'linuxzen')
'linuxzen'

我们看到使用get方法获取不存在的键值的时候不会触发异常,同时get方法接收两个参数,当不存在该键的时候就会返回第二个参数的值 我们可以看到使用get更加的优雅

字典还有一种方法返回指定键的值,D.setdefault()

D = {'Name': 'Runoob', 'Age': 7}
 
print ("Age 键的值为 : %s" %  D.setdefault('Age','25')) # 键存在在字典中则不会设置为指定值
print ("Sex 键的值为 : %s" %  D.setdefault('Sex', 'NA')) # 键不存在,指定一个值
print ("School 键的值为 : %s" %  D.setdefault('School')) # 键不存在,不指定值,默认为None
print ("新字典为:", D)
#output:
Age 键的值为 : 7
Sex 键的值为 : NA
School 键的值为 : None
新字典为: {'Name': 'Runoob', 'Age': 7, 'Sex': 'NA', 'School': None}

Python 字典 setdefault() 方法和 get() 方法类似,返回指定键的值,如果键不在字典中,将会添加键并将值设置为一个指定值,默认为None。已存在不修改指定值

get() 和 setdefault() 区别: setdefault() 返回的键如果不在字典中,会添加键(更新字典),而 get() 不会添加键

del 语句删除字典的元素

语法:del 字典[键]

d = {'name': 'china', 'pos': 'asia'}
del d['pos']
print(d)
del d['name']
print(d) # {}
#ouput
{'name': 'china'}
{}

字典的 in / not in 运算符

可以用 in 运算符来判断一个是否存在于字典中,如果存在则返回True, 否则返回False
not in 与 in 返回值相反

d = {'a': 1, 'b': 2}
'a' in d # True
1 in d # False
100 not in d # True
2 not in d # True

字典的迭代访问

字典是可迭代对象,字典只能对键进行迭代访问

d = {'name': 'LeoLRH', (2002, 1, 1): '生日'}
for x in d:
    print(x)
# output
name LeoLRH
(2002, 1, 1) 生日

字典也可以直接对键值进行排序,但键值必须都为数都为字符

d = {3: 'LeoLRH', 1: '生日'}
for x in sorted(d.keys()):
    print(x,d[x])
# output
1 生日
3 LeoLRH

可以用于字典的内建函数

len(x) 返回字典键-值对的个数
max(x) 返回字典的键的最大值
min(x) 返回字典的键的最小值
sum(x) 返回字典所有键的和
any(x) 真值测试,只对键测试,如果其中一个键为True,结果为True
all(x) 真值测试,全部键为True时,结果才为True

字典的方法

python字典学习_第1张图片

你可能感兴趣的:(python学习)