【PY从0到1】第五节 字典

# 5 第五节 字典
'''
我们先理解下什么叫字典。字典就是在一堆词语中检索
你想知道的词的解释,就跟查字典似的,很通俗对吧?
Python中的字典跟我们熟知的字典是一个意思。这里面,
你想查的词叫‘键’,想知道的解释叫‘值’。‘键’与‘值’
用‘:’连接。如,字典 = {'键':'值'}怎么样?像查字
典吗?

'''
# 1> 字典示例
# 下面创建一个字典,并试图获取解释。
dictionary = {'a':'A','b':'B','c':'C'} 
print(dictionary['b'])
print(dictionary['a'])
# 打印结果如下,像极了查字典。
# B
# A

# 2> 添加、修改、删除字典内容
# 添加字典内容也十分简单,基本形式如:dictionary['键'] = ['值']
dictionary['d'] = 'D'
print(dictionary)
# 打印结果如下,我们看到字典已经成功加入了新的内容。
# {'a': 'A', 'b': 'B', 'c': 'C', 'd': 'D'}
# 修改字典内容与添加字典内容有异曲同工之处,形式类似。
dictionary['d'] = 'E'
print(dictionary)
# 结果如下。
# {'a': 'A', 'b': 'B', 'c': 'C', 'd': 'E'}
# 删除字典中的内容用del,具体语句如下。
del dictionary['d']
print(dictionary)
# 输出结果为:{'a': 'A', 'b': 'B', 'c': 'C'}

# 3> 长字典的习惯表达
# 字典包含的内容过多也不能全部放在一行里,下面给出习惯表达。
favorite_fruit = {
    'didi':'apple',
    'xixi':'banana',
    'huanhuan':'orange',
    }

# 4> 遍历字典
# 一般想知道列表和字典的元素都采用for循环,这里也不例外。
# items()(输出键-值)
for name,fruit in favorite_fruit.items():
    print('Name: ' + name)
    print('Fruit: ' + fruit + '\n')
# 结果如下:
# Name: didi
# Fruit: apple

# Name: xixi
# Fruit: banana

# Name: huanhuan
# Fruit: orange
# keys()(输出键)
for name in favorite_fruit.keys():
    print(name.title())
# 输出结果如下:
# Didi
# Xixi
# Huanhuan
# values()(输出值)
for name in favorite_fruit.values():
    print(name.title())
# 输出结果如下:
# Apple
# Banana
# Orange

# set()函数可以去除列表中的重复元素。
# for name in set(favorite_fruit.values()):
    
# sorted()函数可以对遍历前的字典输出值进行排序。
# for name in sorted(favorite_fruit.values()):

# 5> 嵌套
# 嵌套就是将列表和字典混在一起。下面举例子。
# 列表里套字典。(将元素的特性整洁的储存在列表中。)
member_1 = {'A':'a','B':'b','C':'c'}
member_2 = {'D':'d','E':'e','F':'f'}
member_3 = {'G':'g','H':'h'}

members = [member_1,member_2,member_3]

for member in members:
    print(member)
# 结果如下,我们遍历了列表members。
# {'A': 'a', 'B': 'b', 'C': 'c'}
# {'D': 'd', 'E': 'e', 'F': 'f'}
# {'G': 'g', 'H': 'h'}
    
# 字典里套列表。(当需要在字典中将一个键关联多个值时,都可以在字典中嵌套一个列表。)
members = {'A':['c','d','e'],'B':['f','g','h']}
# 如果想遍历字典里的列表可以这么做。
for member , small_member in members.items():
    print('Member: ',member)
    for s_m in small_member:
        print('Small member: ',s_m)
    print('\n')
# 输出结果如下:
# Member:  A
# Small member:  c
# Small member:  d
# Small member:  e


# Member:  B
# Small member:  f
# Small member:  g
# Small member:  h
    
# 字典里套字典。(不建议这么做,因为会让代码看着臃肿。)
families = {
    'a_family':{
        'didi':'son',
        'xixi':'daughter',    
        },
    
    'b_family':{
        'lala':'mon',
        }
    } 
for family , members in families.items():
    print('\nFamily name: ' + family)
    for name , position in members.items():
        print('Name: ' + name ,'Positon: ' + position)
# 输出结果如下:
# Family name: a_family
# Name: didi Positon: son
# Name: xixi Positon: daughter

# Family name: b_family
# Name: lala Positon: mon
# 仅这一个简单的例子就已经看出字典套字典的复杂了。

 

posted @ 2020-12-22 15:56  泥鳅不怕水  阅读(48)  评论(0)    收藏  举报