假设我有一个字典'd = {'Monday':{1:[2],5:[6],8:[9]},'Tuesday':{4:[11,12], 7:[13,15]}},我想返回“星期二”,因为星期二内的每个键都具有比“星期一”内的键更多的值。这是我的方法。有人可以帮忙吗?谢谢。
def total(d):
name = ''
count = 0
for day in d:
for num in d[day]:
count = len(d[day][num])
name = day
return name
答案 0 :(得分:-1)
您可以将max
函数与生成器表达式一起使用,该表达式返回每个子字典的子列表的最大长度,并将键作为元组的第二项输出:
max((max(map(len, v.values())), k) for k, v in d.items())[1]
这将返回:Tuesday
答案 1 :(得分:-1)
您需要一个变量,该变量保存到目前为止找到的最高计数,并在当前计数较高时进行更新。您还应该只在发生这种情况时更新name
。
def total(d):
name = ''
maxcount = 0
for day in d:
for num in d[day]:
count = len(d[day][num])
if count > maxcount:
maxcount = count
name = day
return name
如果两天都有长度最长的商品,则将返回第一天。