美文网首页Java技术分享
傻瓜式学Python3——字典

傻瓜式学Python3——字典

作者: 张少林同学 | 来源:发表于2017-09-02 15:34 被阅读30次
来自网络 .jpg

经历过七夕的恐怖气息之后,想想程序猿会有女朋友?不存在的,代码才是真爱,继续 Python 的学习之旅—— 字典

接触过 java 的朋友肯定知道 map 数据结构 ,以键值对的形式存储数据,即 key--value 的形式,Python 中的 字典,就相当于 java 中的 map,字典可存储的信息量几乎不受限制,以键值对的形式存在,可以很准确的为各种真实物体建模,而且存储数据是动态的,可以随时添加键值对,没有限制。例如可以创建一个表示人的字段,存储有关于人的一切信息:身高,体重,家庭住址等等。

开车.png

字典基本定义

使用 {} 包含一系列键值对数据,其中 键 必须为 String 格式。

person = {'name': '张少林', 'age': 24,'address': 'zhangzhou'}

访问字典中的值

格式 字典名[键] 获取对于键的 value

person = {'name': '张少林', 'age': 24, 'address': 'zhangzhou'}
print(person['name'])

结果为张少林

添加 key-value

字典可以存储任意多个 key-value,可以随时在字典中添加任意个 key-value 值,字典名[键]赋值即可。

person = {} //定义空字典
person['name'] = '张少林'//添加值
person['age'] = 24//添加值
print(person)

结果为:{'name': '张少林', 'age': 24}

更新字典中的值

字典名[键]赋值,加入键已经存在,则更新,不存在则新增

person = {}
person['name'] = '张少林'
person['age'] = 24
print(person)

person['age'] = 18 //修改age字段的值
print(person)

结果为:

{'name': '张少林', 'age': 24}
{'name': '张少林', 'age': 18}

永久性删除字典中的值

使用 del 删除字典的 key-value

del person['age']
print(person)

结果为:{'name': '张少林'}
注意:这样是永久删除该键值对

遍历所有的 key-value

person = {
    'name': '张少林',
    'age': 24,
    'address': 'zhangzhou'
}
for key,value in person.items():
    print('key:',key,'--->','value:',value)

结果为:

key: address ---> value: zhangzhou
key: name ---> value: 张少林
key: age ---> value: 24

遍历所有的 key

for key in person.keys():
    print('key:',key)

结果为:

key: address
key: age
key: name

按顺序遍历所有键

for key in sorted(person.keys()):
    print('key:',key)

结果为:

key: address
key: age
key: name

遍历所有的 value 值

for value in person.values():
    print('value:',value)

结果为:

value: zhangzhou
value: 24
value: 张少林

在列表中存储字典

字典就类似 java 对象一样,存储着一类事物的信息,有时候需要存储一些同类事物的信息,可以使用在列表中存储字典

alien_0 = {'color':'green','point':5}
alien_1 = {'color':'yellow','point':10}
alien_2 = {'color':'red','point':15}

aliens = [alien_0,alien_1,alien_2]

for alien in aliens:
    print(alien)

结果为:

{'point': 5, 'color': 'green'}
{'point': 10, 'color': 'yellow'}
{'point': 15, 'color': 'red'}

在字典中存储列表

类似 java 对象中包含的信息,有可能一个字段包含的信息量很多,可以是一个列表,所以可以在字典中存储列表

pizza = {
    'crust': 'thick',
    'toppings': ['mushrooms', 'extra cheese']
}
print(pizza['crust'])
for topping in pizza['toppings']:
    print(topping)

结果为:

thick
mushrooms
extra cheese

在字典中存储字典

users = {
    'aeinstein':{
        'first':'albert',
        'last':'aeinstein',
        'location':'princeton',
    },
    'mcurie':{
        'first':'marie',
        'last':'curie',
        'location':'paris',
    }
}
for name,userInfos in users.items():
    print('name---->',name)
    for key,userInfo in userInfos.items():
        print('key-->',key,'userInfo--->',userInf

结果为:

name----> mcurie
key--> last userInfo---> curie
key--> first userInfo---> marie
key--> location userInfo---> paris
name----> aeinstein
key--> last userInfo---> aeinstein
key--> first userInfo---> albert
key--> location userInfo---> princeton

注意:遍历字典的时候都没有按顺序的,取值只关心键对应的值

检查 key 是否存在

if 'aeinstein' in users:
    print('aeinstein is here!')

结果:aeinstein is here!

使用 get()方法获取字典值

之前使用 字典名[键] 形式直接获取字典对应键的值,加入 key 不存在会报错,可以使用 get 获取值,加入 key 不存在,显示 None 值,当然 get() 可以传入默认值,加入key 值不存在,则显示传入的默认值。

person = {
    'name': '张少林',
    'age': 24,
    'address': 'zhangzhou'
}
print(person.get('name','小林'))

结果打印张少林

简单记录一下学习笔记,如有不足之处,麻烦评论区之处,谢谢

更多原创文章会在公众号第一时间推送,欢迎扫码关注 张少林同学

张少林同学.jpg

相关文章

  • 傻瓜式学Python3——字典

    经历过七夕的恐怖气息之后,想想程序猿会有女朋友?不存在的,代码才是真爱,继续 Python 的学习之旅—— 字典。...

  • python合并字典

    python3和合并字典

  • 傻瓜式学Python3——列表

    前言: 好久不见,突然发觉好久没写博客了,最近迷上了 Python 无法自拔,了解了一下,Python 简单易学,...

  • 傻瓜式学Python3——函数

    前言:大周末的闲来无事,继续 Python3 的傻瓜式学习——函数。 函数,每个编程语言都有自己特定的函数表示方式...

  • python日常

    1. Python3中字典(dict)合并的几种方法 方法一:字典的update()方法 方法二:字典的dict(...

  • python3字典排序

    python3 字典排序 说实话,对字典进行排序,这个说法本身就有问题,实际上,你无法对操纵字典说,字典,在你的底...

  • Python字典学习笔记

    Python3 字典 定义 字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)...

  • 傻瓜式学Python3——面向对象

    写在前面 最近心情有些焦虑,说不出的糟糕,但是我不想每天带着负能量生活,,毕竟还有更重要的事情要去做。只有让自己忙...

  • Python 字典排序

    Python 字典排序 《Python3 CookBook》[https://python3-cookbook.r...

  • 001-Two Sum

    语言:python3 v1:轮询 结果:超时了,提交失败 v2:建立字典,循环字典 总结:字典映射结构比for循环效率更

网友评论

    本文标题:傻瓜式学Python3——字典

    本文链接:https://www.haomeiwen.com/subject/pstzdxtx.html