python-字典

 1.字典

 Python中,字典是一系列键-值对。每一个键都与一个值相关联,可以使用键来访问相关联的值。

 与键相关联的可以是数乃至字典字、字符串、列表甚至字典。

alien = {'color':'red','points':5}   #point 点数
print(alien['color'])
print(alien['points'])

red
5

颜色color对应red,point对应点数5。

#字典是一种动态结构,可随时在其中添加键-值对,要添加键-值对,可依次指定字典名,用方括号括起的的键和相关联的值。

alien['size']=10
print(alien)
{'color': 'red', 'points': 5, 'size': 10}

一般情况在空字典中加键-值对是为了方便,但有时候必须这么做。一般通常在存储用户提供的数据活编写自动生成的大量键-值对代码时,需要定义一个空字典。

 2.修改字典中的值

修改字典中的值,依次指定字典名、用方括号括起的键和键的新值。

alien =  {'x':0,'y':0,'speed':'medium'}   #这里假如有一个外星人,初始坐标为0,0;速度为medium
print('Original x:' + str(alien['x'])) #Original,最初的
if alien['speed'] == 'slow': #如果外星人速度为slow,横坐标x右移1
x = 1
elif alien['speed'] == 'medium': #如果外星人速度为medium,横坐标x右移2
x = 2
else: #如果外星人速度为其他情况,横坐标x右移3
#这个外星人很快
x = 3
alien['x'] += x #x初始坐标加上移动的x值,最后打印
print('New x:' + str(alien['x']))

Original x:0
New x:2

 3.删除字典中的值

  del:使用del时,必须指定字典名和要删除得键。

  del alien['x'],删除的键-对值永远消失。

  

 4.遍历字典中的值

  一个字典中可能有几条到数不清的键-值对。

  遍历字典的方式有很多种,比如:键-值、键或值。

  items()方法以列表形式(并非直接的列表,若要返回列表值还需调用list函数)返回可遍历的(键, 值)元组数组。是随字典变化的新类型

  vlaue()方法是只返回值列表,不包含任何键。

  set()方法类似集合一个列表,但是没有重复项。

favourite_languages = {
'lihua' : 'python',
'liming' : 'c',
'guohao' : 'java',
'yanmou' : 'c'
}
for name,language in sorted(favourite_languages.items()): #sorted 正序排序
print(name.title() + "'s favourite language is " + language.title() + ".")
for language1 in set(favourite_languages.values()): #values() 函数以列表返回字典中的所有值。 set去除重复项
print(language1)

Guohao's favourite language is Java.
Lihua's favourite language is Python.
Liming's favourite language is C.
Yanmou's favourite language is C.
java
python
c

user1 = {
    'username' : 'lihua',
    'first' : 'aa',
    'last' : 'bb'
}
for key,value in user1.items():
    print('\nKey:' + key)
    print('Value:' + value)

Key:username
Value:lihua

Key:first
Value:aa

Key:last
Value:bb

 5.嵌套

  5.1 字典列表

alien1 = {'color':'red','point':'5'}            #创建三个外星人
alien2 = {'color':'green','point':'10'}
alien3 = {'color':'yellow','point':'15'}
aliens = [alien1,alien2,alien3]                 3将三个字典放入一个列表中
for alien in aliens:
    print(alien)

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

  但当我们的外星人量大的时候,需要借助for循环来解决创建的问题

 

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

#创建10个外星人
for number in range(20):                 #循环20次,造出20个外星人
    new_alien = {'color':'red','point':'5','speed':'fast'}    #给外星人属性
    aliens.append(new_alien)                #在空列表中添加外星人
for alien in aliens[:5]:                    #取前五个外星人
    print(alien)
print(str(len(aliens)))                     #确定是否为20个

for alien in aliens[:2]:                    #取前两个外星人
    if alien['color'] == 'red':
        alien['color'] = 'green'
        alien['point'] = 5
        alien['speed'] = 'slow'
for alien in aliens[:5]:            
    print(alien)

{'color': 'red', 'point': '5', 'speed': 'fast'}
{'color': 'red', 'point': '5', 'speed': 'fast'}
{'color': 'red', 'point': '5', 'speed': 'fast'}
{'color': 'red', 'point': '5', 'speed': 'fast'}
{'color': 'red', 'point': '5', 'speed': 'fast'}
20
{'color': 'green', 'point': 5, 'speed': 'slow'}
{'color': 'green', 'point': 5, 'speed': 'slow'}
{'color': 'red', 'point': '5', 'speed': 'fast'}
{'color': 'red', 'point': '5', 'speed': 'fast'}
{'color': 'red', 'point': '5', 'speed': 'fast'}

 

  5.2 在字典中存储列表

jiaozi = {
    '表皮':'白面',
    '':'',
    '调料':['','辣椒']          #在字典中插入一个列表,用来丰富描述
}
print('你点了一个' + jiaozi['表皮'] + jiaozi[''] + '的饺子')
for tiaoliao in jiaozi['调料']:   #遍历
    print('\t' + tiaoliao)   # \t 制表符它的作用是对齐表格数据的各列

你点了一个白面肉的饺子
    醋
    辣椒
 
favourite_language = {
    '李明':['c','python'],             #在字典中嵌套列表
    '赵越':['c'],
    '小明':['java','c'],
    '李刚':['c++','php']
}
for name,languages in favourite_language.items():    
    print(name.title() + "最喜欢的语言是:")
    for language in languages:
        print("\t" + language.title())

李明最喜欢的语言是:
    C
    Python
赵越最喜欢的语言是:
    C
小明最喜欢的语言是:
    Java
    C
李刚最喜欢的语言是:
    C++
    Php

 

posted @ 2020-09-02 17:01  阿鑫的哥哥  阅读(113)  评论(1)    收藏  举报