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

你可能感兴趣的:(5.python字典操作)