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

根据存储在python中变量中的值创建列表

公沈义
2023-03-14
问题内容

我有一个带有字符串值的变量。我想创建一个以值作为其名称/标识符的列表,然后将值附加到列表中。因此,假设变量s = "temp1",我想创建一个名为的列表temp1。显然,就我而言,我不知道的价值s


问题答案:

别。创建动态变量很少是一个好主意,并且,如果您尝试创建本地名称(在函数内部),则很困难,并且会极大地影响性能。

请改用字典:

lists = {}
lists[strs] = []
lists[strs].append(somevalue)

命名空间只是用于在其中查找名称的代码的默认词典。创建更多此类词典更加容易和整洁。

您仍然可以使用globals()函数访问全局(模块名称空间),该函数返回一个(可写的)字典。您可以使用来访问函数本地名称空间locals(),但是由于已优化了函数中的本地名称空间访问,因此对其进行写入通常无效。

在Python 2中,您可以通过exec在函数中使用语句来删除该优化。在Python
3中,您无法再关闭优化,因为该exec语句已被exec()function取代,这意味着编译器不再能确定地检测到您可能正在使用该函数写入本地名称空间。



 类似资料:
  • 我有一个主类,一个DTO和一个DAO。我想做的是读取数据库表 CUSTOMER(两个字段名称,姓氏),然后将其写入 txt 文件。我似乎无法让它将值存储在 DTO 中,以便我的主类可以获取它。 我的DTO存在两个字段,名和姓,getters和setters。问题出在我的刀与列表上 *请记住我是一名学生。 这是我到目前为止所做的:结果,像这样写入文件:[姓名姓氏,姓名姓氏,]我需要它写入分隔的文件管

  • 本文向大家介绍将列的值存储到MySQL存储过程的变量中,包括了将列的值存储到MySQL存储过程的变量中的使用技巧和注意事项,需要的朋友参考一下 要声明变量,请在MySQL存储过程中使用DECLARE。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 这是创建存储过程并将上述表的列值存储在存储过程变量中的查询- 调用存储过程- 这

  • 我有一张800万行的大桌子。此表有15列带有数值,但这些值只能是0,并且只能是该列特有的另一个数值。我想根据特定值为这些列中的每一列创建两个新列。这些新值总是特定于列。 这是我的数据外观的虚拟示例: 这是我想要的输出 对应关系始终相同,即中1的值为,中2的值为,中3的值为。 我知道我可以用这样的东西 但我的真实数据有15列,需要大量的复制粘贴,有没有干净的方法?

  • 问题内容: 如何使用列表中的名称创建新变量?这个: 当然不行。我该怎么办? 我想做这个: 问题答案: 我认为更适合此目的: 但是,如果您仍然想即时创建变量,则可以使用:

  • 我有两个熊猫数据框 步骤1:根据df1中唯一的“val”在df2中创建列,如下所示: 步骤2:对于flag=1的行,AA_new将计算为var1(来自df2)*组“A”和val“AA”的df1的'cal1'值*组“A”和val“AA”的df1的'cal2'值,类似地,AB_new将计算为var1(来自df2)*组“A”和val“AB”的df1的'cal1'值*组“A”和val“AB”的df1的'c

  • 我需要帮助完成一项看似简单的任务。我想基于< code>dplyr::mutate中的一个条件创建几个新变量。我可以使用< code>ifelse创建一个新变量,但是我想一步创建几个。 让我们假设这是我的数据帧。 我想要这样的东西: 因此,if条件应该基于条件< code>y创建三个新变量 我想与< code>if_else和< code>case_when一起使用。 谢谢转发