Python学海无涯路【第04回】:基本数据类型之字典

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chuhe163/article/details/88931472


1、字典的定义

字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }
  • 键必须是唯一的,但值则不必。(True代表1.False代表0)
  • 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组
  • 字典是无序的,每次打印,输出的顺序可能都不相同
  • 列表不能作为字典的key
  • 字典不能作为字典的key
#以下是字典的实例
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };

2、读取字典里的元素

2.1、读取某个元素

#!/usr/bin/env python
# -*- coding:utf-8 -*-
info = {"A": "a", "B": "b", "C": "c", 1: 1, 2: 2, 3: 3}
print(info["A"])
print(info[1])

输出:
a
1

2.2、for循环

2.2.1、遍历keys

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#遍历key
info = {"A": "a", "B": "b", "C": "c", 1: 1, 2: 2, 3: 3}
for item in info.keys():
    print(item)

输出:
A
B
C
1
2
3

2.2.2、遍历values

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#遍历value
info = {"A": "a", "B": "b", "C": "c", 1: 1, 2: 2, 3: 3}
for item in info.values():
    print(item)

输出:
a
b
c
1
2
3

2.2.3、遍历items

#!/usr/bin/env python
# -*- coding:utf-8 -*-
info = {"A": "a", "B": "b", "C": "c", 1: 1, 2: 2, 3: 3}
for itemKeys,itemValues in info.items():
    print(itemKeys,itemValues)

输出:
A a
B b
C c
1 1
2 2
3 3

3、修改字典里的元素

#!/usr/bin/env python
# -*- coding:utf-8 -*-
info ={"A": "a", "B": "b"}
info["A"] = "aa"
print(info)

输出:
{‘A’: ‘aa’, ‘B’: ‘b’}

4、删除字典里的元素

#!/usr/bin/env python
# -*- coding:utf-8 -*-
info = {"A": "a", "B": "b", "C": "c", 1: 1, 2: 2, 3: 3}
del info["A"]	#删除	
print(info)		
info.clear()    #清空
print(info)

输出:
{‘B’: ‘b’, ‘C’: ‘c’, 1: 1, 2: 2, 3: 3}
{}

5、字典的一部分方法

5.1、fromkeys

fromkeys是个静态函数

#!/usr/bin/env python
# -*- coding:utf-8 -*-
info =dict.fromkeys(["A","B",1])
print(info)
info =dict.fromkeys(["A","B",1],123)
print(info)

输出:
{‘A’: None, ‘B’: None, 1: None}
{‘A’: 123, ‘B’: 123, 1: 123}

5.2、get

如果用info[key]这种形式读取元素时,元素中无匹配的key就会报错,此时可以用get来读取元素

#!/usr/bin/env python
# -*- coding:utf-8 -*-
info ={"A":"a","B":"b"}
print(info.get("A"))
print(info.get("AA"))       #key不存在时返None
print(info.get("AA","0000"))#key不存在时使其返0000

输出:
a
None
0000

5.3、pop

#!/usr/bin/env python
# -*- coding:utf-8 -*-
info ={"A":"a","B":"b"}
v=info.pop("A")         #删除该元素,并返回对应的value
print(v)
v=info.pop("AA","0000") #删除的元素不存在,使其返0000
print(v)
print(info)

输出:
a
{‘B’: ‘b’}
0000
{‘B’: ‘b’}

5.4、popitem

#!/usr/bin/env python
# -*- coding:utf-8 -*-
info ={"A":"a","B":"b"}
v=info.popitem()                        #随机删除一个元素
print(v)    
itemKey,itemValue=info.popitem()        #随机删除一个元素
print(itemKey)
print(itemValue)

输出 :
(‘B’, ‘b’)
A
a

5.5、setdefault

#!/usr/bin/env python
# -*- coding:utf-8 -*-
info ={"A":"a","B":"b"}
v=info.setdefault("A","c")      #新增一个键值对,如果key存在字典中,不新增,并返回key对应的value
print(v)
print(info)
v=info.setdefault("C","c")       #新增一个键值对,如果key不存在字典中,则新增,并返回新增元素key对应的value
print(v)
print(info)

输出:
a
{‘A’: ‘a’, ‘B’: ‘b’}
c
{‘A’: ‘a’, ‘B’: ‘b’, ‘C’: ‘c’}

5.6、update

#!/usr/bin/env python
# -*- coding:utf-8 -*-
info ={"A":"a","B":"b"}
info.update({"A":"aa","B":"b"})     #修改元素的value 
print(info)
info.update(A="AA")                 #修改元素的value ,key不用加“”
print(info)

5.7、keys、values、itesms

keys详见遍历keys
values详见遍历values
items详见遍历items

猜你喜欢

转载自blog.csdn.net/chuhe163/article/details/88931472