题目描述:
请编写一个程序,统计出给定的字典中值为”tester”的数量和”develop”的数量,并把所有是值”tester”的key放到列表里打印出来,是”develop”的key放到另一个列表打印出来
dep = {'kitch ': [{"aki": "tester", "ennis": "tester", "nancy": "tester", "c": "tester", "kevin": "develop", "tavis ": "develop"}]}
dep = {'kitch ': [{"aki": "tester","ennis": "tester","nancy": "tester","c": "tester","kevin": "develop","tavis ": "develop"}]}
题目分析:
我们知道字典是Python提供的一种常用的数据结构,它用于存放具有映射关系的数据。 字典相当于保存了两组数据,其中一组数据是关键数据,被称为 key;另一组数据可通过 key 来访问,被称为 value。
字典由多个键和其对应的值构成的键—值对组成,键和值中间以冒号:隔开,项之间用逗号隔开,整个字典是由大括号{}括起来的。
然后我们对dep字典进行分析:
第一层:
dep字典中只有一组数据也即只有一个键值对,在这个键值对中,关键数据也即key为‘kitch ’,由‘kitch ’所引导访问的数据value为[{"aki": "tester", "ennis": "tester", "nancy": "tester", "c": "tester", "kevin": "develop", "tavis ": "develop"}],然后我们来看这个value的数据类型,很明显由两端的方括号可以看出value为一个列表;
可能对有些初学者来说有些有些困难,无法看出value的数据类型,没关系,我们可以通过type函数来获取value的数据类型
dep = {'kitch ': [{"aki": "tester","ennis": "tester","nancy": "tester","c": "tester","kevin": "develop","tavis ": "develop"}]}print(type(dep['kitch ']))
输出结果:
<class 'list'>
所以我们可以知道value为一个列表
第二层:
我们首先创建一个列表lst来存放value
dep = {'kitch ': [{"aki": "tester","ennis": "tester","nancy": "tester","c": "tester","kevin": "develop","tavis ": "develop"}]}print(type(dep['kitch ']))
lst=dep['kitch ']
然后我们对lst列表进行分析,我们可以看到lst列表中仅有一个元素即{"aki": "tester", "ennis": "tester", "nancy": "tester", "c": "tester", "kevin": "develop", "tavis ": "develop"},由两端的花括号可以看出这个元素为字典,也可用type函数进行判断,判断方法同上
print(type(lst[0]))
输出结果:
<class 'dict'>
所以我们可以知道该元素为一个字典
解题思路:
我们先创建一个字典作为我们在上一步中所得到的列表中的字典
dep1=lst[0]
然后创建两个空列表来分别存放字典中值为”tester”和”develop”的key
lst1=[]
lst2=[]
通过for循环遍历字典进行判断,并字典中值为”tester”和”develop”的key添加至列表中
for i in dep1:if dep1.get(i)=='tester':lst1.append(i)else:lst2.append(i)
输出列表
print(lst1)
print(lst2)
源码如下:
dep = {'kitch ': [{"aki": "tester","ennis": "tester","nancy": "tester","c": "tester","kevin": "develop","tavis ": "develop"}]}# print(type(dep['kitch ']))
lst=dep['kitch ']
# print(type(lst[0]))
lst1=[]
lst2=[]
dep1=lst[0]
for i in dep1:if dep1.get(i)=='tester':lst1.append(i)else:lst2.append(i)
print(lst1)
print(lst2)