Python学习之字典(上)

179 阅读4分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第17天


  • NP67 遍历字典

描述

创建一个依次包含键-值对'<': 'less than'和'==': 'equal'的字典operators_dict,

先使用print()语句一行打印字符串'Here is the original dict:',

再使用for循环遍历 已使用sorted()函数按升序进行临时排序的包含字典operators_dict的所有键的列表,使用print()语句一行输出类似字符串'Operator < means less than.'的语句;

对字典operators_dict增加键-值对'>': 'greater than'后,

输出一个换行,再使用print()语句一行打印字符串'The dict was changed to:',

再次使用for循环遍历 已使用sorted()函数按升序进行临时排序的包含字典operators_dict的所有键的列表,使用print()语句一行输出类似字符串'Operator < means less than.'的语句,确认字典operators_dict确实新增了一对键-值对。

输入描述:

输出描述:

按题目描述进行输出即可(注意前后两个输出部分需以一个空行进行分隔)。

参考代码:

operators_dict = {'<': 'less than','==': 'equal'}
print('Here is the original dict:')
for k,v in sorted(operators_dict.items()):
  #  print('Operator %s means %s.'%k,%v)   
    print('Operator %s means %s.'%(k,v))  # 注意点:这里要实用%(里面输入的是两个参数),即默认字典的键值对
operators_dict['>'] = 'greater than'  # 关于字典中添加值的做法,就是键值对对应,即将字典的key = value即可
print()
print('The dict was changed to:')
for k,v in sorted(operators_dict.items()):
    print('Operator %s means %s.'%(k,v))

这里需要注意一个点:即sorted函数的用法:
list = sorted(iterable, key=None, reverse=False) 其中,iterable 表示指定的序列,key 参数可以自定义排序规则;
reverse 参数指定以升序(False,默认)还是降序(True)进行排序。
sorted() 函数会返回一个排好序的列表.\

  • NP68 毕业生就业调查

描述

又到了毕业季,牛牛作为牛客大学的学生会主席,决定对本校的应届毕业生进行就业调查。

他创建了一个依次包含字符串'Niumei'、'Niu Ke Le'、'GURR'和'LOLO'的列表survey_list,作为调查名单;

又创建了一个依次包含键-值对'Niumei': 'Nowcoder'和'GURR': 'HUAWEI'的字典result_dict,作为已记录的调查结果。

请遍历列表survey_list,如果遍历到的名字已出现在 包含字典result_dict的全部键的列表 里,

则使用print()语句一行输出类似字符串'Hi, Niumei! Thank you for participating in our graduation survey!'的语句以表达感谢,

否则使用print()语句一行输出类似字符串'Hi, Niu Ke Le! Could you take part in our graduation survey?'的语句以发出调查邀请。

输入描述:

输出描述:

按题目描述进行输出即可。

Hi, Niumei! Thank you for participating in our graduation survey!
Hi, Niu Ke Le! Could you take part in our graduation survey?
Hi, GURR! Thank you for participating in our graduation survey!
Hi, LOLO! Could you take part in our graduation survey?

参考代码如下:

survey_list = ['Niumei','Niu Ke Le','GURR','LOLO']
result_dict = {'Niumei': 'Nowcoder','GURR': 'HUAWEI'}
for i in survey_list:
    if i in result_dict.keys():
        print('Hi, %s! Thank you for participating in our graduation survey!'%i)
    else:
        print('Hi, %s! Could you take part in our graduation survey?'%i)

关于如何获取字典的键值key
可以利用key()函数直接获取
当然也可以使用内置函数set(), 将其转换为集合数据结构。集合:其实可以理解为只有键的字典

  • NP69 姓名与学号

描述

创建一个依次包含键-值对{'name': 'Niuniu'和'Student ID': 1}的字典my_dict_1,

创建一个依次包含键-值对{'name': 'Niumei'和'Student ID': 2}的字典my_dict_2,

创建一个依次包含键-值对{'name': 'Niu Ke Le'和'Student ID': 3}的字典my_dict_3,\

创建一个空列表dict_list,使用append()方法依次将字典my_dict_1、my_dict_2和my_dict_3添加到dict_list里,

使用for循环遍历dict_list,对于遍历到的字典,使用print()语句一行输出类似字符串"Niuniu's student id is 1."的语句以打印对应字典中的内容。

输入描述:

输出描述:

按题目描述进行输出即可。

Niuniu's student id is 1.
Niumei's student id is 2.
Niu Ke Le's student id is 3.

我的代码

my_dict_1 = {'name':'Niuniu','Student ID':1}
my_dict_2 = {'name': 'Niumei','Student ID': 2}            
my_dict_3 = {'name': 'Niu Ke Le','Student ID': 3}
dict_list = []
dict_list.append(my_dict_1)
dict_list.append(my_dict_2)
dict_list.append(my_dict_3)
for i in dict_list:
    if i == my_dict_1:
        print("Niuniu's student id is 1.")
    elif i == my_dict_2:
        print("Niumei's student id is 2.")
    elif i == my_dict_3:
        print("Niu Ke Le's student id is 3.")
   

可参考代码

my_dict_1 = {'name':'Niuniu','Student ID':1}
my_dict_2 = {'name':'Niumei','Student ID':2}
my_dict_3 = {'name':'Niu Ke Le','Student ID':3}
dict_list = []
dict_list.append(my_dict_1)
dict_list.append(my_dict_2)
dict_list.append(my_dict_3)
# 获取字典的键和值
for i in dict_list:
    print("{}'s student id is {}.".format(i['name'],i['Student ID']))


# 字典获取元素的方法i['key值'],或者i.get('key值')

print(f"{i['name']}'s student id is {i.get('Student ID')}.")
  • NP70 首都

描述

创建一个依次包含键-值对'Beijing': {Capital: 'China'}、'Moscow': {Capital: 'Russia'}和'Paris': {Capital: 'France'}的字典cities_dict,

请使用for循环遍历"已使用sorted()函数按升序进行临时排序的包含字典cities_dict的所有键的列表",

对于每一个遍历到的城市名,使用print()语句一行输出类似字符串'Beijing is the capital of China!'的语句。\

输入描述:

输出描述:

按题目描述进行输出即可。

Beijing is the capital of China!
Moscow is the capital of Russia!
Paris is the capital of France!

参考代码如下:

cities_dict = {'Beijing': {'Capital': 'China'},'Moscow': {'Capital': 'Russia'},'Paris': {'Capital': 'France'}}
for i in sorted(cities_dict.keys()):
    print(f"{i} is the capital of {cities_dict.get(i)['Capital']}!")