Python学习之路-----字典

字典是Python中最灵活的数据类型,同样用来存储多个不同类型的数据。但是它和列表、元组还是有一些本质区别的,而且主要是用来存储有关系的数据

定义及基本特性

1.字典使用键值对来存储数据,相邻的键值对使用逗号分割,最外层使用大括号;

2.键,即key,类似于列表中的索引。值,即value,相当于列表中的元素本身;

3.键与值之间使用:来分割;

4.值可以是任何数据类型,但是键只能是字符串、数字、元组而且必须唯一。

5.字典是无序的。因为字典只能通过键来获得对应的值,因为字典只能通过键来获得对应的值。反过来也就是说当你想获得某个值时,你必须得到 键,已经人为控制了顺序。但是字典本身这种数据类型是无序的。

dic = {"key1":"value1",
        "key2":2,
       "key3":3.3,
       "key4":True}

输出类型及基本的输出操作

1.使用type()获得字典的数据类型;

2.使用print()直接输出字典;

3.使用print()输出指定的键对应的值;

print(dic)  # {'key1': 'value1', 'key2': 2, 'key3': 3.3, 'key4': True}
print(type(dic)) # <class 'dict'>
print(dic["key1"]) # value1

字典的基本操作

1.增加数据

    字典名[键]= 数据    如果键值已经存在,新的值会覆盖原来的值;

2.删除数据

     del 字典名[键]= 数据

     字典.pop(键)    删除指定的某个键并返回

     字典.clear()       清空字典的数据

dict2 = {"name":"zhangsan",
         "age":20,
         "height":1.75,
         "weight":80}
print("dict2:",dict2) # dict2: {'name': 'zhangsan', 'age': 20, 'height': 1.75, 'weight': 80}
dict2["weight"] = 90
print("修改weight后:",dict2) # 修改weight后: {'name': 'zhangsan', 'age': 20, 'height': 1.75, 'weight': 90}
dict2["birth"] = "1993.11.18"
print("增加birth后:",dict2) # 增加birth后:{'name': 'zhangsan', 'age': 20, 'height': 1.75, 'weight': 90, 'birth': '1993.11.18'}
del dict2["birth"]
print("删除birth后:",dict2) # 删除birth后:{'name': 'zhangsan', 'age': 20, 'height': 1.75, 'weight': 90}
result=dict2.pop("height")
print("删除height后:",dict2)# 删除height后:{'name': 'zhangsan', 'age': 20, 'weight': 90}
print("被删除的值是:",result) # 被删除的值是:1.75

  其他方法:

  setdefault(键值对):

dict2.setdefault("age",18)
print("setdefault age=18:",dict2) # setdefault age=18: {'name': 'zhangsan', 'age': 20, 'weight': 90}
dict2.setdefault("age1",66)
print("setdefault age1=66:",dict2)  # setdefault age1=66 {'name': 'zhangsan', 'age': 20, 'weight': 90, 'age1': 66}
print("setdefault的作用:如果要键值存在,什么也不做;如果键值不存在,则将该键与值添加进字典!")

  update(另一个字典):

dict2.update({"name":"new_name","place":"Beijing"})
print(dict2) # {'name': 'new_name', 'age': 20, 'weight': 90, 'age1': 66, 'place': 'Beijing'}
print("A.update(B)的作用:如果B中有与A相同的键,则A中该键值改为B中的键值;如果B中有A不存在的键,则把键值对加入A中!")

字典的专有方法:

1.获得所有的键值;

dict3 = {"name":"lisi","age":25,"birth":"19951118"}
keys = dict3.keys() # dict_keys(['name', 'age', 'birth'])
print(keys)

    注意:获得的是一个视图对象,但是在Python2中获得的是一个列表。视图对象占用空间比列表小。获得的视图对象可以使用for key in XXX 遍历:

2. 获得所有的值

values = dict3.values()

3.获得所有的键值对

items = dict3.items()

   这三个方法获得的都是视图对象,都可以使用循环遍历。下面演示一个items的经典用法:

items = dict3.items()
for item in items:
    print(item)
结果:
('name', 'lisi')
('age', 25)
('birth', '19951118')

遍历item输出的是元组,并且每个元组中有且仅有两个数据。因此,可以利用元组的解包把每一个数据拆开。

items = dict3.items()
for key,value in items:
    print(key)
    print(value)
结果:
name
lisi
age
25
birth
19951118

一个有趣的东西:

chartomosi = {
'a' : '.-',
'b' : '-...',
'c' : '-.-.',
'd' : '-..',
'e' : '.',
'f' : '..-.',
'g' : '--.',
'h' : '....',
'i' : '..',
'j' : '.---',
'k' : '-.-',
'l' : '.-..',
'm' : '--',
'n' : '-.',
'o' : '---',
'p' : '.--.',
'q' : '--.-',
'r' : '.-.',
's' : '...',
't' : '-',
'u' : '..-',
'v' : '...-',
'w' : '.--',
'x' : '-..-',
'y' : '-.--',
'z' : '--..'
}


mositochar = {
'.-' : 'a', 
'-...' : 'b', 
'-.-.' : 'c', 
'-..' : 'd', 
'.' : 'e', 
'..-.' : 'f', 
'--.' : 'g', 
'....' : 'h', 
'..' : 'i', 
'.---' : 'j', 
'-.-' : 'k', 
'.-..' : 'l', 
'--' : 'm', 
'-.' : 'n', 
'---' : 'o', 
'.--.' : 'p', 
'--.-' : 'q', 
'.-.' : 'r', 
'...' : 's', 
'-' : 't', 
'..-' : 'u', 
'...-' : 'v', 
'.--' : 'w', 
'-..-' : 'x', 
'-.--' : 'y', 
'--..' :  'z',
} 

s1='beijing'
for i in s1:
    print(i,type(i),chartomosi[i])

结果:
b <class 'str'> -...
e <class 'str'> .
i <class 'str'> ..
j <class 'str'> .---
i <class 'str'> ..
n <class 'str'> -.
g <class 'str'> --.

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值