在 python 中动态生成变量名称[重复]

2023-12-10

有没有办法可以在 python 中循环生成变量名并为其赋值?例如,如果我有

prices = [5, 12, 45]

I want

price1 = 5
price2 = 12
price3 = 45

我可以在循环或其他方式中执行此操作,而不是手动分配price1 = prices[0], price2 = prices[1] etc.

谢谢。

EDIT

很多人建议我写一个要求这样做的理由。首先,有时我认为这可能比使用列表更方便......我不记得具体是什么时候,但我想我已经考虑过在有很多级别的嵌套时使用它。例如,如果有一个列表的列表,则以上述方式定义变量可能有助于减少嵌套级别。其次,今天我在尝试学习 Pytables 的使用时想到了这一点。我刚刚接触到 Pytables,发现在定义表的结构时,列名和类型是按以下方式描述的:

class TableFormat(tables.IsDescription):
    firstColumnName = StringCol(16)
    secondColumnName = StringCol(16)
    thirdColumnName = StringCol(16)

如果我有 100 列,那么明确键入每列的名称似乎需要大量工作。所以,我想知道是否有一种方法可以动态生成这些列名称。


如果您确实想动态创建它们,您可以分配给由以下任一方法返回的字典globals() or locals()取决于您想要在哪个命名空间中创建它们:

globals()['somevar'] = 'someval'
print somevar  # prints 'someval'

但我不建议这样做。一般来说,避免全局变量。使用locals()通常只会掩盖你真正在做什么。相反,创建您自己的字典并分配给它。

mydict = {}
mydict['somevar'] = 'someval'
print mydict['somevar']

学习Python禅宗;运行这个并很好地理解它:

>>> import this
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 python 中动态生成变量名称[重复] 的相关文章

随机推荐

  • Python IOError:Errno 13 权限被拒绝

    好吧 我完全困惑了 我整晚都在研究这个问题 但无法让它发挥作用 我有权查看该文件 我想做的就是阅读该死的东西 每次我尝试都会得到 Traceback most recent call last File
  • Xcode 6 对按钮图像的约束

    我正在创建一个应用程序 其仪表板包含 11 个图像 1 是背景 1 是分隔按钮的线 9 是带有图像的按钮 我尝试了几次自动约束分配 但我也尝试了手动 但我不知道如何正确设置约束 我也遵循了很多教程 如果您观看下图 您会发现按钮 图像尤其是
  • CouchDB + 凭据 + 原始通配符的 CORS 问题

    我正在尝试在 flow ch 上从 Cloudant 迁移到 Jelastic 在本地测试 离子服务 时 我收到 pouchdb 的 CORS 错误 除了我缺少的 CouchDB 之外 Jelastic 中还有其他配置吗 XMLHttpRe
  • numpy 获取许多样本而不按行替换

    我有一个非常大的清单 想象一下它看起来像这样 test llama cow horse fish sheep goat cat dog 我想多次从这个列表中抽样 我希望每个样品都被采集而不需要更换 在这种情况下我想避免 for 循环 我在
  • 使用sql计算之前的时间

    假设我有下表test它有列id time post这是它拥有的数据的样本 id time post 1 2018 06 17 16 12 30 post1 2 2018 06 17 16 13 09 post2 3 2017 06 15 1
  • 使用 gradle build 运行 tomcat jasper 任务 (jspc)

    我试图在 gradle 中使用 jspc 编译我们的 jsp 文件 但出现异常 这是相关的 gradle 部分 tomcatHome is defined in gradle properties ant tomcatHome tomcat
  • Facebook 无法在应用程序 swift 3 中打开页面

    我的网站上有一个指向我的 Facebook 的链接 该链接可在手机浏览器中打开 如果安装了应用程序 我希望它默认在 Facebook 应用程序中打开 我试图输入这段代码 但它不起作用 始终且仅通过 Safari 打开 Facebook 页面
  • 使用 SMTPLib Python 时获取未经授权的发件人地址

    我编写了一个非常简单的 Python 脚本来自动发送电子邮件 这是它的代码 import smtplib From email protected To email protected with smtplib SMTP smtp gmx
  • 测试 Hystrix 断路器配置

    我们的应用程序是通过使用 Hystrix 实现断路器模式以抗脆弱的方式编写的 整个应用程序是使用测试驱动实践创建的 但陷入了我们需要通过在方法上配置相同策略来实现断路器策略的阶段 以下是我们使用的示例配置 HystrixCommand co
  • X 轴和 Y 轴相交于 0 [重复]

    这个问题在这里已经有答案了 我使用以下代码来生成此图 x lt c 0 916 0 815 0 101 0 029 0 166 0 949 0 073 0 054 1 006 y lt c 3 91 5 17 1 08 1 28 1 01
  • LINQ Take() 反复返回相同的结果

    我想翻阅一些记录 但是Take 延伸自LINQ没有返回我预期的结果 public IQueryable
  • Grails Log4j DSL 配置中的 Log4j 过滤器

    有没有办法指定 log4j 过滤器Grails log4j DSL配置 我需要在 Grails log4j 配置中定义类似的内容
  • 如何防止 gdb 在下一个命令后停止

    我正在尝试定义一个命令链 该命令链将在 gdb 中的断点之后调用 break some function commands up next printf some string continue end 在这种情况下 例如 我想在 some
  • 将复选框添加到 PHP POST 电子邮件表单

    我正在尝试为 WordPress 构建一个表单 我过去使用过插件 但我需要对某些特定样式进行最大程度的控制 我还不太擅长 PHP 所以正在努力尝试向脚本添加复选框 我已经删除了我的尝试并将复选框留在了 html 中 但不在 PHP 中 有人
  • SQL命令插入中文字母

    我有一个数据库 其中有一列 nvarchar 类型 如果我写 INSERT INTO table VALUES 玄真 表明 在表中 我应该怎么办 我正在使用 SQL 开发人员 使用单引号而不是双引号来创建文本文字并用于NVARCHAR2 N
  • 在 for 循环中写入 .csv

    我想在 for 循环中写入 csv 文件 假设我有一个数据框data为了简单起见 有 3 行变量x 最后 我希望输出为 200 个 csv 文件 每个文件包含一行数据 数据的第一列是我的变量的标识 ID 此外 我的数据描述如下 data I
  • JavaScript通过数组中的循环设置时间差

    我尝试使用 JavaScript 中的循环将值存储在数组中 它只对我部分有效 我想将时间存储在数组中 会有startTime endTime和一个间隔 例如 如果想获取9 00到10 00之间的时间 间隔为15分钟 应该打印 09 00 0
  • Java:为什么大正数相乘会导致负结果? [复制]

    这个问题在这里已经有答案了 我看到一些用 Java 进行整数相乘的奇怪行为 我正在做一些编码练习 并发现了以下嘶嘶声类型的练习 要求 给定一个整数 编写一个函数 找出小于给定整数的每个 3 的倍数的乘积 except5 的任意倍数 例如 给
  • async/await whenall 立即返回

    我有这个 简单 测试代码 不要打扰类方法的奇怪使用 我正在努力抓住Task lt gt 错综复杂 我想我有点了解Task lt gt Start Task lt gt Result模式 也许因为它更像 旧 Thread Start 但是一旦
  • 在 python 中动态生成变量名称[重复]

    这个问题在这里已经有答案了 有没有办法可以在 python 中循环生成变量名并为其赋值 例如 如果我有 prices 5 12 45 I want price1 5 price2 12 price3 45 我可以在循环或其他方式中执行此操作