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

时间:2019-11-25 15:23:14

标签: python python-3.x pandas dictionary

我正在编写一个函数,该函数返回一个以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

1 个答案:

答案 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