如何通过递归与用户输入在Python中追加字典值?



我在一个较大的类中创建了一个名为" ads "的方法。该方法应该接受用户输入,并将此数据附加到字典的值槽(0)。但是,字典键已经定义,不应该更改。

程序的这一部分旨在使用递归将占位符值0附加到表示小时数的用户输入浮点值。这些"小时"(或浮点数)值应该是与表示星期的键相关联的值(例如:M, T, W, TH, F, S, SUN)

一个我希望字典在程序运行后如何处理的例子:

ads_dict = {'M': 4.2, 'T': 6,'W': 3.5,'TH': 2.2, 'F': 4.3, 'S': 2, 'SUN': 4.1}

当前代码缺少元素,但这是它目前的情况…(请注意,我对计算机科学研究相当陌生,如果你能像我5岁一样解释一下,我会很感激的):

@property
def ads(self):
for k,v in ads_dict.items():
v = input('Enter Hours In Adult Day Service')
ads_dict.append(v)
ads_dict = {'M': 0, 'T': 0,'W': 0,'TH': 0, 'F': 0, 'S': 0, 'SUN': 0}

return self._ads

我觉得为这个问题创建一个新帖子是合适的,因为我找不到以前问过的关于使用最终用户输入递归附加字典的问题。谢谢你!

我在代码中很少看到错误

  • 应该在for之前创建ads_dict-loop
  • 字典不使用.append(),但' ads_dict[k] = v
  • input()总是给出字符串(即使使用写数字),所以你需要转换它' float(v)
  • 如果你能在input()中显示日期名称,
  • 代码可能会更有用
  • 我不知道self._ads是什么
@property
def ads(self):

ads_dict = {'M': 0, 'T': 0,'W': 0,'TH': 0, 'F': 0, 'S': 0, 'SUN': 0}
for key, value in ads_dict.items():
value = input(f'Enter Hours In Adult Day Service for {key}: ')
ads_dict[key] = float(value)
return ads_dict

当然,你也可以用.keys()代替.items(),因为你不使用字典中的原始值。

@property
def ads(self):

ads_dict = {'M': 0, 'T': 0,'W': 0,'TH': 0, 'F': 0, 'S': 0, 'SUN': 0}
for key in ads_dict.keys():
value = input(f'Enter Hours In Adult Day Service for {key}: ')
ads_dict[key] = float(value)
return ads_dict

或者你可以创建一个空字典,并使用带有键的list

@property
def ads(self):

ads_dict = {}

for key in ['M', 'T', 'W', 'TH', 'F', 'S', 'SUN']:
value = input(f'Enter Hours In Adult Day Service for {key}:' )
ads_dict[key] = float(value)
return ads_dict

最新更新