jQuery火箭图标返回顶部代码

Python之旅:字典

  Python数据类型


#作用:存多个值,key:value 存取,取值速度快 #定义:key必须是不可变类型,value可以是任意类型

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示

d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组

一个简单的字典实例

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

 也可以如此创建值

dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };

访问字典里的值

把相应的键放入熟悉的方括弧,如下实例:

dict = {'Name': 'Alex', 'Age': 7, 'Class': 'First'}
print (dict['Name'],dict['Age'])
>>> Alex

修改字典

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

dict['Age'] = 8;               # 更新 Age
dict['School'] = "lin"  # 添加信息


print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])

以上实例输出结果:

dict['Age']:  8
dict['School']:  lin

 

删除字典元素

能删单一的元素也能清空字典,清空只需一项操作。

显示删除一个字典用del命令,如下实例:

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

del dict['Name'] # 删除键 'Name'
dict.clear()     # 清空字典
del dict         # 删除字典

print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])

但这会引发一个异常,因为用执行 del 操作后字典不再存在:

Traceback (most recent call last):
  File "test.py", line 9, in <module>
    print ("dict['Age']: ", dict['Age'])
TypeError: 'type' object is not subscriptable

 

字典键的特性

字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。

两个重要的点需要记住:

1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:

dict = {'Name': 'Runoob', 'Age': 7, 'Name': 'Allen'}

print ("dict['Name']: ", dict['Name'])

>>> dict['Name']: Allen

2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:

dict = {['Name']: 'Runoob', 'Age': 7}

print ("dict['Name']: ", dict['Name'])

#以上实例输出结果:
Traceback (most recent call last):
  File "test.py", line 3, in <module>
    dict = {['Name']: 'Runoob', 'Age': 7}
TypeError: unhashable type: 'list'

 

字典内置函数&方法

Python字典包含了以下内置函数:

 

序号

函数及描述

实例

1 len(dict)
计算字典元素个数,即键的总数。   
>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
>>> len(dict)
3
2 str(dict)
输出字典,以可打印的字符串表示。
>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
>>> str(dict)
"{'Name': 'Runoob', 'Class': 'First', 'Age': 7}"

 

优先掌握的操作:

#1、按key存取值:可存可取
#2、长度len
#3、成员运算in和not in
#4、删除
#5、键keys(),值values(),键值对items()
#6、循环

 

#1、按key存取值:可存可取
dic={'name':'allen'}
dic['age']=18    # 存值
print(dic)
>>> {'name': 'allen', 'age': 18}
dic['name']='egon'
print(dic)
>>> {'name': 'egon', 'age': 18}

#2、长度len
dic={'name':'egon','age':18}
print(len(dic))
>>> 2

#3、成员运算in和not in
dic={'name':'egon','age':18}
if 'egon' in dic['name']:
    print('1')
else:
    print('2')
>>> 1
______________________________
dic={'name':'egon','age':18}
if 'egon'not in dic['name']:
    print('1')
else:
    print('2')
>>> 2
#4、删除
dic={'name':'egon','age':18}
del dic['name']
print(dic) #删除键同样也删除了值
#5、键keys(),值values(),键值对items()
dic={'name':'egon','age':18}
print(dic.keys())   #打印出key的值
>>> dict_keys(['name', 'age'])
print(dic.values()) #打印出键的值
>>> dict_values(['egon', 18])
print(dic.items())  #打印出键值,即key,value
>>> dict_items([('name', 'egon'), ('age', 18)])

#6、循环
for x in dic.keys():
    print(x)
>>> name
>>> age
for value in dic.values():
    print(value)
>>> egon
>>> 18
for k,v in dic.items(): #k,v=('name', 'egon')
    print(k,v)
>>> name egon
>>> age 18
实例

 

需要掌握的操作:

 

 

序号 函数 描述
1  get(key,default=None)  Python 字典 get() 函数返回指定键的值,如果值不在字典中返回默认值。
2  popitem  Python 字典 popitem() 方法随机返回并删除字典中的一对键和值。

如果字典已经为空,却调用了此方法,就报出KeyError异常。

3  setdefault(key,default=None)  Python 字典 setdefault() 方法和get()方法类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值。字典有中有key,则不修改,返回原key对应的原值; 没有对应的key,则添加,返回添加的key对应的value 
4  fromkeys(seq[, value]))  Python 字典 fromkeys() 函数用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值。
5  update(dict2)  Python 字典 update() 函数把字典dict2的键/值对更新到dict里。
6  pop(key[,default])  Python 字典 pop() 方法删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
7  
clear()
 Python 字典 clear() 函数用于删除字典内所有元素。

 


 

  Python数据类型

 

posted @ 2018-03-21 21:46  墨颜丶  阅读(251)  评论(0编辑  收藏  举报