Python 如何使用列表中的项目作为变量并为其赋值?

Python 如何使用列表中的项目作为变量并为其赋值?,python,pandas,Python,Pandas,我希望使用pandas库读取多个csv文件,并使用for循环将该数据帧分配给列表中的项目。 目前我有两个列表(一个列表包含数据帧名称,第二个列表包含数据帧) 例如,我使用以下代码: list1 = ['amol', 'ankit', 'akshay', 'ashok'] # in actual there are 100+ items in the list marks = [50, 60, 70, 80] # marks list actully contains dataframe -

我希望使用pandas库读取多个csv文件,并使用for循环将该数据帧分配给列表中的项目。 目前我有两个列表(一个列表包含数据帧名称,第二个列表包含数据帧) 例如,我使用以下代码:

list1 = ['amol', 'ankit', 'akshay', 'ashok'] # in actual there are 100+ items in the list
marks = [50, 60, 70, 80]   # marks list actully contains dataframe - pandas.core.frame.DataFrame

for ind, name in enumerate(list1):
    name = marks[ind]
print(amol)

# NameError: name 'amol' is not defined.
这不是为“amol”赋值,而是给出“NameError:未定义名称“amol”

我试着用字典

list1 = ['amol', 'ankit', 'akshay', 'ashok']
marks = [50, 60, 70, 80]

mark_dict = {}

for ind, name in enumerate(list1):
    mark_dict[name] = marks[ind] 
print(mark_dict['amol'])
Dictionary正在工作,但我想给'amol'赋值,这样就可以执行下面的代码,并且应该给我一个输出(在实际项目中,它应该返回dataframe)。 请告诉我怎么做

print(amol) 


您可以使用
globals()
将变量添加到模块的全局命名空间
zip
将两个列表转换为匹配元组的itertator
(列表1[0],标记[0])
globals().update
的工作原理与常规的
dict.update
类似,因此可以将这些元组直接输入其中以更新名称空间

list1 = ['amol', 'ankit', 'akshay', 'ashok'] # in actual there are 100+ items in the list
marks = [50, 60, 70, 80]

globals().update(zip(list1, marks))
print(amol)

这不是一件平常的事。通常情况下,人们会将动态生成的数据保存在字典中。

“我不能在我的项目中使用字典”-为什么不能?大多数Python都是隐藏的字典,因此如果这是真的,您可能会遇到一个巨大的问题。这是否回答了您的问题?您可以包括您期望的
amol
吗?如果我理解您在这里尝试做什么,您可能想尝试打印一个未创建的变量,我想使用pandas库读取多个csv文件,我想使用for循环将该数据帧分配给“amol”。所以当我打印amol时,它应该打印数据帧。
list1 = ['amol', 'ankit', 'akshay', 'ashok']
marks = [50, 60, 70, 80]

mark_dict = {}

for ind, name in enumerate(list1):
    mark_dict[name] = marks[ind] 
print(mark_dict['amol'])