为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕尼黑8549860 2021-03-29 10:41:55
我有一个带有字符串值的变量。我想创建一个以值作为其名称/标识符的列表,然后将值附加到列表中。因此,假设变量s = "temp1",我想创建一个名为的列表temp1。显然,就我而言,我不知道s它将带来什么价值。
查看完整描述

2 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

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


请改用字典:


lists = {}

lists[strs] = []

lists[strs].append(somevalue)

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


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


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


查看完整回答
反对 回复 2021-04-02
?
米脂

TA贡献1836条经验 获得超3个赞

您可以使用globals():


>>> strs = "temp1"

>>> globals()[strs] = []

>>> temp1

[]

但是将dict用于此目的会更合适:


>>> dic = {strs:[]}

>>> dic["temp1"]

[]


查看完整回答
反对 回复 2021-04-02
  • 2 回答
  • 0 关注
  • 292 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信