当前位置: 首页 > 面试题库 >

在Python中使用列表中的名称循环创建新变量

洪富
2023-03-14
问题内容

如何使用列表中的名称创建新变量?这个:

name = ['mike', 'john', 'steve']   
age = [20, 32, 19]  
index = 0

for e in name:
    name[index] = age[index]
    index = index+1

当然不行。我该怎么办?

我想做这个:

print mike
>>> 20

print steve
>>> 19

问题答案:

我认为dictionaries更适合此目的:

>>> name = ['mike', 'john', 'steve']

>>> age = [20, 32, 19]

>>> dic=dict(zip(name, age))

>>> dic['mike']
20
>>> dic['john']
32

但是,如果您仍然想即时创建变量,则可以使用globals()[]

>>> for x,y in zip(name, age):
    globals()[x] = y


>>> mike
20
>>> steve
19
>>> john
32


 类似资料:
  • 我有一个命名的数据帧列表。我需要用数据帧的名称为每个数据帧创建一个新变量,这样我最终就可以将它们全部rbind起来,以生成统计数据和绘图。 我知道lapply不会传递对象的名称,也知道有很多类似问题的帖子,但我无法将我看到的任何解决方案适用于我的特定问题。 这是我第一次尝试的方法,但显然不起作用,因为names(x)不会返回对象的名称。 TestList<-list(a=data.frame(Va

  • 问题内容: 出于示例目的… 所以我最终得到了string1,string2,string3 …都等于 问题答案: 但实际上将一个值与另一个值相关联的最佳方法是字典。这就是它的设计目的!

  • 问题内容: 如何使用循环命名变量?例如,如果我想让变量 double_1 = 2 , double_2 = 4 一直到 double_12 = 24 ,我该怎么写?我感觉会是这样的: 显然,这是行不通的,但是将循环号实现为变量名的正确语法是什么?我已经有一段时间没有编码了,但是我确实记得有一种方法可以做到这一点。 问题答案: 请改用字典。例如: 或者,如果您 绝对 必须 这样做 ,并且仅在完全了解

  • 我一直试图弄清楚如何找到一个列表的模式,而不使用排序函数,也不导入任何模块已经有一段时间了...以下是我目前掌握的情况: 如何找到如下输出:

  • 问题内容: 我想从Python中的常量列表创建lambda对象列表;例如: 但是,当我运行它们时,这将创建一个lambda对象列表: 我希望它会打印 而是打印: 似乎所有lambda都被赋予了错误的参数。我做错了什么,有办法解决吗?我认为我使用的是Python 2.4。 编辑:更多尝试的事情,例如这样: 打印从1到25的期望平方,然后使用之前的print语句: 仍然给了我全部。现有的lambda对

  • 我有一些变量的名字以数字结尾。现在我需要在一个循环中更改它们的值。 不是把所有的变量放入循环中,我想知道是否有一种方法可以在循环中生成变量的名称?也许是这样的? 我很确定我在什么地方见过类似的东西。做这件事最好的方法是什么?