我试着做一个函数,接受一个数据库和一年,它根据名字的数量计算名字的排名,然后更新数据库。你知道吗
database = {('Spot','DOG'): {2013: (612, 1), 2014: (598, 3)},
('Princess','CAT'): {2013: (713, 2)},
('Smokey', 'CAT'): {2013: (523, 1), 2014: (514, 1)},
('Fido', 'DOG'): {2013: (558, 2), 2014: (655, 1)},
('Sparky','DOG'): {2104: (572, 2)}}
我必须把猫和狗分开排列,最流行的名字是排名1,所以按降序排列。你知道吗
我只允许使用基本表达式和语句,len, range, enumerate, int, get, items, keys, values, pop, copy, popitem, update, append, insert, extend,min, max, index, split, join, replace, sorted, sort, reversed, reverse, sets
和基本表达式和语句,我可以编写自己的函数并使用它们。你知道吗
我不能导入模块或使用lambda或任何东西,除了允许列表上的内容。这就是我被困住的原因。这是我的第一节编程课。我不知道如何对元组排序。我知道如何排序嵌套字典,有一个伟大的职位在这里,但我被困在这个元组。你能帮忙吗。你知道吗
def rank_names_for_one_year(db, year):
list = []
list_2 = []
for k in db:
if 'MALE' in k:
for key in db[k]:
if year == key:
for n in db[k][year]:
list.append(n)
break
if 'FEMALE' in k:
for key in db[k]:
if year == key:
for n in db[k][year]:
list_2.append(n)
break
list.sort()
new_list = [()]
list_2.sort()
new_list_2 = [()]
for k in db:
if 'MALE' in k:
for i in range(len(list)):
new_list.append((list[i],i+1))
for key in db[k]:
if year == key:
for n in db[k][year]:
for i in range(len(new_list)):
for j in range(len(new_list[i])):
if new_list[i][j] == n:
db[k][year] = new_list[i]
if 'FEMALE' in k:
for i in range(len(list_2)):
new_list_2.append((list_2[i],i+1))
for key in db[k]:
if year == key:
for n in db[k][year]:
for i in range(len(new_list_2)):
for j in range(len(new_list_2[i])):
if new_list_2[i][j] == n:
db[k][year] = new_list_2[i]
相关问题 更多 >
编程相关推荐