python字典的函数参数

python字典的函数参数,python,function,dictionary,input,parameters,Python,Function,Dictionary,Input,Parameters,我正在编写一个包装器函数,它执行其他几个函数 为了简化这个问题,假设只有包装器函数和calc_days函数返回开始日期和结束日期之间的天数。还可以将日期列表传递给“开始日期”和“结束日期”参数,此时函数将返回开始日期和结束日期的每个可能组合的天数 def wrapper(startd,endd): return calc_days(startd,endd) 现在,我想让函数的用户可以通过编辑csv文件来提供输入参数,如下所示: startd;01/01/1900 startd;01/01

我正在编写一个包装器函数,它执行其他几个函数

为了简化这个问题,假设只有包装器函数和calc_days函数返回开始日期和结束日期之间的天数。还可以将日期列表传递给“开始日期”和“结束日期”参数,此时函数将返回开始日期和结束日期的每个可能组合的天数

def wrapper(startd,endd):
   return calc_days(startd,endd)
现在,我想让函数的用户可以通过编辑csv文件来提供输入参数,如下所示:

startd;01/01/1900
startd;01/01/1950  
endd;01/01/2000
因此包装器会变成这样(使用pandas读取csv):

我使用groupby功能是因为它会在我的字典中创建一个开始日期的列表:

{startdd : [01/01/1900,01/01/1950]}
现在我的问题是:在实际设置中,我没有2个输入参数,但我有大约30个输入参数。因此,它希望以输入参数的值(startdd)为键,以输入参数的内容([01/01/1900,01/01/1950])为值动态构建字典

除了为每个输入参数手动创建外,是否有安全的方法动态构建此词典?

是的,提供了您需要的大部分信息。您必须循环索引和值以将所有内容绑定在一起

def insertintoData(aItem, bItem, cDict):
    if not aItem in cDict:
        cDict[aItem] = [(bItem)]
    else:
        cDict[aItem].append((bItem))

input_dict = {}
for i in input_param:
    insertintoData(i[0], i[1], input_dict)

您的groupby将由函数中的if/else处理。

我不确定我是否100%理解,但
**KWD
是否符合您的要求?您的问题不是重点。。。说来话长
def insertintoData(aItem, bItem, cDict):
    if not aItem in cDict:
        cDict[aItem] = [(bItem)]
    else:
        cDict[aItem].append((bItem))

input_dict = {}
for i in input_param:
    insertintoData(i[0], i[1], input_dict)