使用 map() 函数将元组作为值附加到字典中



我正在编写一个函数,该函数返回一个字典,其中文档的年份作为键,作为值,它指定由 def do_get_citations_per_year函数返回的元组。

到目前为止,我设法创建了一个带有键的字典。我被困在如何映射这两个函数以便获得元组作为值。

#the function that returns tuple which I need as a value.
def do_get_citations_per_year(data, year):
result = tuple()
my_ocan['creation'] = pd.DatetimeIndex(my_ocan['creation']).year
len_citations = len(my_ocan.loc[my_ocan["creation"] == year, "creation"])
timespan = round(my_ocan.loc[my_ocan["creation"] == year, "timespan"].mean())
result = (len_citations, timespan)
print(result)

return result

def do_get_citations_all_years(data):
mydict = {}
t = tuple()
series_name = my_ocan.creation
s = set(series_name)
for year in s:
mydict[year] = ()
for key in mydict.keys():
mydict[key].append()##???How can I use map() function here: 

return mydict

元组是不可变的 - 你不能附加到它们。你为什么不做以下事情:

def do_get_citations_all_years(data):
mydict = {}
series_name = my_ocan.creation
s = set(series_name)
for year in s:
mydict[year] = do_get_citations_per_year(data, year)
return mydict

甚至:

def do_get_citations_all_years(data):
return {year: do_get_citations_per_year(data, year) for year in set(my_ocan.creation)}

应该注意的是,两个函数的data参数都是多余的,因为您不使用data,而是使用my_ocan

最新更新