[英]Using a function to return a count of keys within a dictionary
我是Python的新手,让我们开始吧。
既然那已经不合时宜了,我正在努力解决Python中的字典/列表问题。 我的任务是编写一个带有两个参数的函数,一个是字典,一个是键列表。 我需要返回此列表中有多少键出现在字典中的计数。 这是我到目前为止的内容:
def members({'name': 'Scott', 'title': 'esquire'},['name', 'age', 'title'])
total_num = 0
for key in dict:
if name in members:
total_num += 1
elif age in dict:
total_num += 1
elif title in members:
total_num += 1
else:
break
print(total_num)
我知道我的语法可能还差得远,但是我很好奇我是否在正确的轨道上。 任何帮助或指导,将不胜感激。
干杯!
或者你可以明确地做..
def members(a_dict, a_list):
total_num = 0
for a_key in a_dict.keys():
if a_key in a_list:
total_num += 1
return total_num
D = {'name': 'Scott', 'title': 'esquire'}
L = ['name', 'age', 'title']
print members(D,L)
>> 2
您可以使用列表推导来检查列表的每个元素是否是字典中的键,然后只需检查生成的列表的长度即可。
>>> d = {'name': 'Scott', 'title': 'esquire'}
>>> l = ['name', 'age', 'title']
>>> len([i for i in l if i in d])
2
作为功能
def keysInDict(d, l):
return len([i for i in l if i in d])
>>> keysInDict({'name': 'Scott', 'title': 'esquire'}, ['name', 'age', 'title'])
2
在这里,您有如何做的解释。
dictionary = {'name': 'Scott', 'title': 'esquire'}
list_ = ['name', 'age', 'title']
def members(dictionary, list_):
# Define counter
cant = 0
# Iter over all list items and check if appear in dictionaty.keys().
for elem in list_:
# Check if elem in dictionay.keys()
if elem in dictionary.keys():
# If true increment counter
cant = cant + 1
# Finally return cant
return cant
print(members(dictionary, list_))
如果列表中包含以下内容,则与其他答案有微小但重要的区别:
['name', 'age', 'title', 'name']
mlwn的答案结果仍为2。根据OP的问题,此列表中有多少键出现在字典中的计数不是正确的。 应该是3。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.