python之字典类型的使用详解

十年热恋 提交于 2019-12-03 09:14:25

python中的数据类型dictionanary---字典,有点类似于java中的map,存放键值对的集合。

  1.字典的特点:   

1.python中的字典可以存放任意数据类型的键值对
2.字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中
3.注意:键必须是唯一的,但值则不必。值可以任何数据类型,但键必须是不可变的如字符串,数字或元组,不可以是列表。

  2.格式如下:dictionary = {key1 : value1, key2 : value2 ,........}

  3.代码演示和注意事项:

#1.创建字典,并且访问字典的值
#注意:键值必须要唯一,如果不唯一的话只取最后一个该键所对应的值
d1 = {"name":"tom","age":18,"name":"hellen","name":"aaa",9:19}
print(d1)  #打印的顺序跟排列的顺序可能不一样,以底层的存储顺序为准
print(d1["name"],d1[9]) #访问字典里的值,是通过键的方式去访问,键类似于他的index.
print(d1["cccc"])#如果字典里没有的键,去访问他的值则会报错。
-----------------------------------
{9: 19, 'age': 18, 'name': 'aaa'}
('aaa', 19)
-----------------------------------
#2.字典里的数据项可以是列表,字符串,元祖的任意类型的数据,也可以是字典。可以互相嵌套
d2={"111":222,(1,2,"abc"):["a","b","c"],1:{"hah":1}}
print(d2)
------------------------------------
{1: {'hah': 1}, '111': 222, (1, 2, 'abc'): ['a', 'b', 'c']}

#3.注意:键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行

  2.对字典的操作:增删改查  

#1.给字典增加元素,没有append等函数
d3={"name1":"tom","name2":"jack"}
d3["name3"]="jerry"
d3["name1"]="tom1" #如果键已经存在,则会将值覆盖,如果没有则插入键值对。
print(d3)
#2.从字典中删除元素
d3={"name1":"tom","name2":"jack"}
del d3["name2"]
print(d3)
del d3  #将整个字典删除,跟列表跟操作一样
d3.clear() #将字典清空,类似于sql中的truncate 结果是:{}
print("==============")
#3.修改字典中的元素value值
d4={"name1":"tom","name2":"jack"}
print(d4)
d4["name3"]="tom3" #同样如果该key不存在,则会添加
print(d4)
d4["name1"]="tom111"
print(d4)

#4.查询字典中的值,使用key去查询
d4={"name1":"tom","name2":"jack"}
print("name2-->",d4["name2"])  #直接使用key去查询,但是没有该k值的话,会报错。
print("name1--->",d4.get("name1")) #使用get方法去查询,这种如果k不存在,不会报错

3.字典其他的操作以及常见函数使用

#·1.查看字典长度len()
d4={"name1":"tom","name2":"jack"}
print("d4:",len(d4))
#2.str(dict)输出字典,以可打印的字符串表示。
d4={"name1":"tom","name2":"jack"}
print(str(d4))
---------------------------------
('d4:', 2)
{'name2': 'jack', 'name1': 'tom'}
----------------------------------
#3.keys()返回一个字典中所有key集合
d4={"name1":"tom","name2":"jack"}
print(d4.keys())
----------------------------
['name2', 'name1']
----------------------------
#4.values()返回一个字典中所有value集合
d4={"name1":"tom","name2":"jack"}
print(d4.values())
---------------------------
['jack', 'tom']
---------------------------
#5.items()将每个键值对作为元祖,存放到列表中
d4={"name1":"tom","name2":"jack"}
print(d4.items())
[('name2', 'jack'), ('name1', 'tom')]

#6.has_key()查询某个key是否存在,是返回true,无返回false.
d4={"name1":"tom","name2":"jack"}
print(d4.has_key("name1"))

  4.对字典的k-v遍历  

#1.对字典中k的遍历
d4={"name1":"tom","name2":"jack"}
for k in d4.keys():
    print("print:k--->",k)
'''
('print:k--->', 'name2')
('print:k--->', 'name1')
'''

#2.对字典中v的遍历
d4={"name1":"tom","name2":"jack"}
for v in d4.values():
    print("print:v-->",v)
'''
('print:v-->', 'jack')
('print:v-->', 'tom')
'''

#3.对字典中数据项的遍历
d4={"name1":"tom","name2":"jack"}
for kv in d4.items():
    print("print:kv-->",kv)
'''
('print:kv-->', ('name2', 'jack'))
('print:kv-->', ('name1', 'tom'))
'''

#4.对字典中k-v遍历
d4={"name1":"tom","name2":"jack"}
for k,v in d4.items():
    print("%s--->%s"%(k,v))
'''
name2--->jack
name1--->tom
'''

统一声明:关于原创博客内容,可能会有部分内容参考自互联网,如有原创链接会声明引用;如找不到原创链接,在此声明如有侵权请联系删除哈。关于转载博客,如有原创链接会声明;如找不到原创链接,在此声明如有侵权请联系删除哈。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!