我正在编写一个函数,该函数返回一个以doc年为键的字典,作为值,它指定由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
答案 0 :(得分:0)
Tuples是不可变的-您不能附加到它们。您为什么不执行以下操作:
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
。