python - 如何使用变量名将用户输入放入字典中?
问题描述
我必须将数据写入 CSV 文件。在我的代码的一部分中,我想将用户输入添加到字典中,然后将其转换为字典DataFrame
。
所以首先我通过将输入分配给一个变量名来简单地输入,例如
fruit = input('Which fruit would you like').casefold()
vegetable = input('Which vegetable would you like').casefold()
drink = input('Which drink would you like').casefold()
然后它继续收集输入,直到用户要求它停止。但是现在我需要先显示这个收集的数据的某一行,然后对该数据进行排序,然后显示排序后的版本。所以我决定一个简单的方法是把它放到字典里,然后把它分类成DataFrame
. 我不确定如何使用这些变量名,例如。如果我想做一个像:
data = {
'Fruits': fruits,
'Vegetables': vegetables,
'Drinks' : drinks
}
我该怎么做?如果您认为DataFrame
除了字典方法之外还有另一种更简单的方法可以将此信息添加到 /write 到 CSV 文件中,请务必提及。
对 Python 和 SOF 来说非常新,所以如果问题不清楚/愚蠢,请原谅我。另外,请使用简单的功能/方法。谢谢!
解决方案
globals() 是一种将全局命名空间中所有当前变量的值存储在字典中的方法(locals() 对本地命名空间的作用相同)。因此,您可以将带有变量名称的字符串传递给它,并返回当前值。像这样: print(globals()['fruit']) 'fruit' 是全局字典中的键。所以你也许可以做这样的事情:
dict1 = {'水果':[],'蔬菜':[],'饮料':[]}
而真:
q = input('q to exit return to continue: ')
if q == 'q':
break
else:
fruit = input('Which fruit would you like')
vegetable = input('Which vegetable would you like')
drink = input('Which drink would you like')
for k in dict1.keys():
dict1[k].append(globals()[k])
打印(dict1)
推荐阅读
- python - 如何将具有许多注释行的数据文本文件加载到熊猫中?
- c# - 使用数据注释在 c# 中进行数据验证
- linux - 脚本通知节点关闭
- reactjs - Material UI 图标中的标签
- html - 从经合组织刮一张表
- python - WSGI 应用程序“mysite.wsgi.application”无法加载;导入模块出错
- android - Flutter : Provider 不更新前一屏的数据
- arrays - 计算 array_agg 中的值
- python - 即使更改代码后,AWS Lambda python 函数输出仍然是“来自 Lambda 的你好”
- c# - C# DynamicData/ReactiveUI - 将项目添加到缓存时出现意外的清除更改