python入门第七天

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

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

d = {key1 : value1, key2 : value2 }

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

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

键是不可变的,所以键只能用不可变类型的数据。

不可变类型: 整型,浮点型,字符串,元组

可变类型:列表,字典

一个简单的字典实例:

 1 a=10
 2 print(id(a))
 3 b=a
 4 print(id(b))
 5 b=15
 6 
 7 print(id(b))
 8 
 9 
10 dic={'name':'Tom','age':'21','gender':'man','hobby':True}
11 print(dic)

结果:

1558212352

1558212352

1558212512

{'name': 'Tom', 'age': '21', 'gender': 'man', 'hobby': True}

 新建字典对象

1 dic={'name':'Tom','age':'21','gender':'man','hobby':True}
2 
3 a=list()
4 b_sub=[('name','Tom'),('age',78)]
5 b=dict(b_sub)
6 
7 print(type(b))
8 print(b)
9 print(type(b_sub))

输出结果

<class 'dict'>
{'name': 'Tom', 'age': 78}
<class 'list'>

字典的内置操作:

dic1={'name':'Tom'}
dic1['age']=18

print(dic1)
'''
radiansdict.setdefault(key, default=None)
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
'''
age_1=dic1.setdefault('age',34)
age_2=dic1.setdefault('hobby','running')


print(dic1)

print(age_1)
print(age_2)

结果:

{'name': 'Tom', 'age': 18}
{'name': 'Tom', 'age': 18, 'hobby': 'running'}
18
running

操作:

dic1={'name':'Tom'}
dic1['age']=18

age_1=dic1.setdefault('age',34)
age_2=dic1.setdefault('hobby','running')
print(dic1)

print(dic1.keys())#以列表返回一个字典所有的键
print(dic1.values())#以列表返回一个字典所有的值
print(dic1.items()) #以列表返回可遍历的(键, 值) 元组数组

结果:

{'name': 'Tom', 'age': 18, 'hobby': 'running'}
dict_keys(['name', 'age', 'hobby'])
dict_values(['Tom', 18, 'running'])
dict_items([('name', 'Tom'), ('age', 18), ('hobby', 'running')])

删除字典元素

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

显示删除一个字典用del命令

>>> dic1={'name': 'Tom', 'age': 18, 'hobby': 'running'}
>>> dic2=dic1.copy()
>>> dic2
{'name': 'Tom', 'age': 18, 'hobby': 'running'}

>>> del dic2['age']
>>> dic2
{'name': 'Tom', 'hobby': 'running'}
>>> dic2.clear()
>>> dic2
{}
>>> del dic2
>>> dic2
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    dic2
NameError: name 'dic2' is not defined
>>> 

 

>>> dic3
{'gender': 'man', 'city': 'jiangsu'}
>>> dic1.update(dic3)
>>> dic1
{'name': 'Tom', 'age': 18, 'hobby': 'running', 'gender': 'man', 'city': 'jiangsu'}
>>> dic3
{'gender': 'man', 'city': 'jiangsu'}
>>> dic1.pop('city')
'jiangsu'
>>> dic1
{'name': 'Tom', 'age': 18, 'hobby': 'running', 'gender': 'man'}
>>> dic1.pop('city')
Traceback (most recent call last):
  File "<pyshell#23>", line 1, in <module>
    dic1.pop('city')
KeyError: 'city'
>>> dic1.setdefault('city','changzhou')
'changzhou'
>>> dic1.pop('city')
'changzhou'
>>> dic1
{'name': 'Tom', 'age': 18, 'hobby': 'running', 'gender': 'man'}
>>> dic1.setdefault('city','changzhou')
'changzhou'
>>> dic1
{'name': 'Tom', 'age': 18, 'hobby': 'running', 'gender': 'man', 'city': 'changzhou'}
>>> dic1['city']='nanjing'
>>> dic1
{'name': 'Tom', 'age': 18, 'hobby': 'running', 'gender': 'man', 'city': 'nanjing'}
>>> dic1.pop('city')
'nanjing'
>>> dic1
{'name': 'Tom', 'age': 18, 'hobby': 'running', 'gender': 'man'}
>>> 

dic1.popitem()

>>> dic1
{'name': 'Tom', 'age': 18, 'hobby': 'running', 'gender': 'man'}
>>> dic1.popitem()
('gender', 'man')

>>> dic1.popitem()
('hobby', 'running')
>>> dic1
{'name': 'Tom', 'age': 18}
>>> 

Python3 字典 fromkeys()方法

>>> dic1
{'name': 'Tom', 'age': 18}
>>> dic4=dict.fromkeys(dic1)
>>> dic4
{'name': None, 'age': None}
>>> dic4['name']='Tom'
>>> dic4
{'name': 'Tom', 'age': None}
>>> dic5=dict.fromkeys(dic1,20)
>>> dic5
{'name': 20, 'age': 20}
>>> 

 

1 dic1={'name': 'Tom', 'age': 18, 'hobby': 'running'}
2 dic2=dict.fromkeys(dic1,'demo')
3 
4 print(dic1)
5 print(dic2)
6 
7 dic3=dict.fromkeys(dic1,['demo','test'])
8 print(dic3)

结果:

{'name': 'Tom', 'age': 18, 'hobby': 'running'}
{'name': 'demo', 'age': 'demo', 'hobby': 'demo'}
{'name': ['demo', 'test'], 'age': ['demo', 'test'], 'hobby': ['demo', 'test']}

 

 1 dic1={'name': 'Tom', 'age': 18, 'hobby': 'running'}
 2 dic2=dict.fromkeys(dic1,'demo')
 3 
 4 print(dic1)
 5 print(dic2)
 6 
 7 dic3=dict.fromkeys(dic1,['demo','test'])
 8 print(dic3)
 9 
10 dic3['name'][1]='test_change'
11 print(dic3)

 

{'name': 'Tom', 'age': 18, 'hobby': 'running'}
{'name': 'demo', 'age': 'demo', 'hobby': 'demo'}
{'name': ['demo', 'test'], 'age': ['demo', 'test'], 'hobby': ['demo', 'test']}
{'name': ['demo', 'test_change'], 'age': ['demo', 'test_change'], 'hobby': ['demo', 'test_change']}

 遍历字典:

 1 dic={4:'a',6:'b',3:'c',9:'d'}
 2 
 3 print(sorted(dic.items()))
 4 print(sorted(dic.keys()))
 5 print(sorted(dic.values()))
 6 print(sorted(dic))
 7 
 8 print('-----------遍历字典1-------------')
 9 for i in dic:
10     print(i,dic[i])
11     
12     
13 print('-----------遍历字典2-------------')
14 for i in dic.items():
15     print(i)
16     
17 print('-----------遍历字典3-------------')
18 for i in dic.keys():
19     print(i)
20     
21 print('-----------遍历字典4-------------')
22 for i in dic.values():
23     print(i)

结果:

[(3, 'c'), (4, 'a'), (6, 'b'), (9, 'd')]
[3, 4, 6, 9]
['a', 'b', 'c', 'd']
[3, 4, 6, 9]
-----------遍历字典1-------------
4 a
6 b
3 c
9 d
-----------遍历字典2-------------
(4, 'a')
(6, 'b')
(3, 'c')
(9, 'd')
-----------遍历字典3-------------
4
6
3
9
-----------遍历字典4-------------
a
b
c
d

 

Python3 字典 get() 方法

Python3 字典 Python3 字典


描述

Python 字典 get() 函数返回指定键的值,如果值不在字典中返回默认值。

语法

get()方法语法:

dict.get(key, default=None)

 

参数

  • key -- 字典中要查找的键。
  • default -- 如果指定键的值不存在时,返回该默认值值。

返回值

返回指定键的值,如果值不在字典中返回默认值 None。

实例

以下实例展示了 get()函数的使用方法:

#!/usr/bin/python3 

dict = {'Name': 'Runoob', 'Age': 27}

print ("Age 值为 : %s" %  dict.get('Age'))
print ("Sex 值为 : %s" %  dict.get('Sex', "NA"))

 

以上实例输出结果为:

Age 值为 : 27
Sex 值为 : NA

 

>>> d={'name':'jack','age':'45'}
>>> d
{'name': 'jack', 'age': '45'}
>>> d.get('age')
'45'
>>> d.get('sex')
>>> d
{'name': 'jack', 'age': '45'}
>>> print(d.get('sex'))
None
>>> print(d.get('sex','famale'))
famale
>>> d
{'name': 'jack', 'age': '45'}
>>> print
<built-in function print>
>>> 

 

posted @ 2018-06-06 17:21  巨兽~墨菲特  阅读(299)  评论(0编辑  收藏  举报