5.python字典操作

字典

知识点:

  1. 字典是由键-值对组成的。
  2. 可以通过键找到与之对应的值。
  3. 值可以是python中的任意可以创建的object。
  4. 通过‘:’冒号来连接键值对,通过‘,’逗号来间隔开不同的键值对。用大括号来包含所有的键值对。
  5. 字典里面的键值对没有顺序。

1. 通过键访问值

输入:

alien_0={'color': 'blue' , 'point': 5}
print("the alien_0's color is " + alien_0['color'])

输出:

c:\py>dictionary
the alien_0's color is blue

2. 添加键值对

直接通过:  字典名[键]=值   来添加

输入:

alien_0={'color': 'blue' , 'point': 5}
print(alien_0)

alien_0['x_position']=0     #字典名[键]=值
alien_0['y_position']=25
print(alien_0)

输出:

c:\py>dictionary
{'color': 'blue', 'point': 5}
{'color': 'blue', 'point': 5, 'x_position': 0, 'y_position': 25}

3. 从空字典开始

和上面添加键值对的方法一样

输入:

alien_0={ }

alien_0['color']='blue'
alien_0['point']=5

print(alien_0)

输出:

c:\py>empty_dic
{'color': 'blue', 'point': 5}

4. 改变字典中键值对的值

输入:

alien_0={ }

alien_0['color']='blue'
alien_0['point']=5

print(alien_0)

alien_0['color']='green'
alien_0['point']=2
print(alien_0)

输出:

c:\py>empty_dic
{'color': 'blue', 'point': 5}
{'color': 'green', 'point': 2}

5. 使用del语句删除键值对

输入:

alien_0={ }

alien_0['color']='blue'
alien_0['point']=5
alien_0['x_position']=0
alien_0['y_position']=25

print(alien_0)

del alien_0['x_position']   #删除键值对'x_position':0
del alien_0['y_position']   #删除键值对'y_position':25

print(alien_0)

输出:

c:\py>empty_dic
{'color': 'blue', 'point': 5, 'x_position': 0, 'y_position': 25}
{'color': 'blue', 'point': 5}

6. 循环查询字典中的键值对

要使用for循环,则必须要有一个列表, .items()方法返回一个元素为键值对的列表。

输入:

alien_0={
    'color': 'blue', 
    'point': 5,
    'x_position': 0,
    'y_position': 25,#最后一个键值对也带上逗号
    }

for key,value in alien_0.items():   #使用.items()方法
    print('\nkey: '+str(key))  #空一行
    print('value: '+str(value))

输出:

c:\py>empty_dic

key: color
value: blue

key: point
value: 5

key: x_position
value: 0

key: y_position
value: 25

7. 循环查询字典中的键

1. 使用.keys()方法

.keys()方法返回一个包含所有键的列表

输入:

alien_0={
    'point': 5,
    'y_position': 25,
    'x_position': 0,
    'color': 'blue', #最后一个键值对也带上逗号
    }

for key in alien_0.keys():  #使用.items()方法
    print('key: '+str(key))

输出:

c:\py>empty_dic
key: point
key: y_position
key: x_position
key: color
2. 在for循环中直接使用字典名

输入:

alien_0={
    'point': 5,
    'y_position': 25,
    'x_position': 0,
    'color': 'blue', #最后一个键值对也带上逗号
    }

for key in alien_0: #直接使用字典名
    print('key: '+str(key))

输出:

c:\py>empty_dic
key: point
key: y_position
key: x_position
key: color

使用.items()方法会让代码可读性更高。

8. 循环查询字典中的值

使用.values()方法

.values()方法返回一个包含所有键的列表

输入:

alien_0={
    'point': 5,
    'y_position': 25,
    'x_position': 0,
    'color': 'blue', #最后一个键值对也带上逗号
    }

for value in alien_0.values():  #使用.values()方法
    print('value: '+str(value))

输出:

c:\py>empty_dic
value: 5
value: 25
value: 0
value: blue

9.按字母表顺序输出

由于字典中的键值对并没有顺序,所以无论是查看所有键或是查看所有值,都没有固定的顺序。

使用sorted()函数暂时改变列表顺序。

输入:

alien_0={
    'point': 5,
    'y_position': 25,
    'x_position': 0,
    'color': 'blue', #最后一个键值对也带上逗号
    }

for key in sorted(alien_0.keys()):  #使用.keys()方法
    print('key: '+str(key))

输出:

c:\py>empty_dic
key: color
key: point
key: x_position
key: y_position

注意: sorted()函数是对字符进行排序,而值往往不止字符型一种,所以常常用来对键排序。

10.消除重复的元素

使用set()函数,生成一个没有重复元素的列表。

下面例子的字典point和y_position键所对应的值重复。

输入:

alien_0={
    'point': 5,
    'y_position': 5,    #这儿和point键对应的值重复
    'x_position': 0,
    'color': 'blue',    #最后一个键值对也带上逗号
    }
    
print('no duplicate values: ')
for value in set(alien_0.values()):   #使用.values()方法
    print(str(value))

输出:

c:\py>empty_dic
no duplicate values:
0
5
blue

11.嵌套

11.1 在列表中嵌套字典

输入:

aliens=[]    #创建一个空列表

for alien_number in range(30):
    new_alien={'color': 'blue' , 'point': 5}
    aliens.append(new_alien)

for alien in aliens[:5]:    #展示前5个元素
    print (alien)
print('...')
#输出列表中alien的总数量
print('total number of aliens : '+str(len(aliens)))

输出:

c:\py>nest
{'color': 'blue', 'point': 5}
{'color': 'blue', 'point': 5}
{'color': 'blue', 'point': 5}
{'color': 'blue', 'point': 5}
{'color': 'blue', 'point': 5}
...
total number of aliens : 30

11.2 在字典中嵌套列表

输入:

favorite_languages={
    'jen' : ['python','ruby'],
    'sarah' : ['c'],
    'jimmy' : ['ruby','go'],
    }
for name,languages in favorite_languages.items():
    print('\n'+name.title()+"'s favorite language are ")
    for language in languages:
        print('\t'+language)

输出:

c:\py>list_nest_dic

Jen's favorite language are
        python
        ruby

Sarah's favorite language are
        c

Jimmy's favorite language are
        ruby
        go

11.3 在字典中嵌套字典

输入:

users={
    'aeinstein':{
    'first' : 'albert',
    'last' : 'einstein',
    'location' : 'princeton',
        },#注意,字典嵌套字典,键值对之间要有逗号
        
    'mcurie':{
    'first' : 'marie',
    'last' : 'curie',
    'location' : 'pairs',
        },#注意,字典嵌套字典,键值对之间要有逗号
    }   
        
for user_name,user_info in users.items():
    print('\nUsername: '+user_name)
    full_name=user_info['first'] + ' '+user_info['last']
    location=user_info['location']
    
    print('\tFull name: '+full_name.title())
    print('\tLocation: '+location.title())

输出:

c:\py>dic_nest_dic

Username: aeinstein
        Full name: Albert Einstein
        Location: Princeton

Username: mcurie
        Full name: Marie Curie
        Location: Pairs
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,810评论 19 139
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 19,315评论 17 410
  • 李煜魂殇宋使前,国破身虏尽凄然。 一朝梦断对残月,三载思归荡寒烟。 回转楼台非御帐,今夕酒醉是何年。 京师空挂封侯...
    庭上望月阅读 1,859评论 2 28
  • 弥漫于空气中的淡淡年韵,像一支笛吹响了我对儿时年味的回忆,不知从何时起那一缕深埋于心中的幽香,便随着这笛音在心中飘...
    予默涵阅读 1,751评论 0 0
  • 前两天在家里看电视,看到了《快乐大本营》第1000期的特别节目。 这档节目已经播放了20多年了,他们的主持人“快乐...
    Justabookworm阅读 3,610评论 6 1

友情链接更多精彩内容