【发布时间】:2017-02-02 16:41:02
【问题描述】:
我正在运行 Python 3.6 和 Pandas 0.19.2,并希望按如下方式访问列表的名称:
# work on the following two lists
for list in [list1, list2]:
# loop through items in each list
for entry in bucket_set:
# do stuff
# let user know I finished working on list x
print('i just finished working on: '+list)
在第一次迭代中,这应该做一些事情,然后打印出:“我刚刚完成了 list1 的工作”。但是:当我运行我的代码时,我收到以下错误:
TypeError: must be str, not list
这很有意义(列表毕竟不是字符串),但是有什么方法可以让我的列表名称作为字符串 ('list1')? 我知道我可以使用 dict 代替(这就是我现在正在做的事情),但我仍然很感兴趣。
【问题讨论】:
-
不,你应该使用字典。变量就像 Python 中对象的便签标签,没有太多理由尝试将它们生成为字符串。可能吗?通过查看
locals(),可能在某种程度上。 -
没有。名称
list(您不应该使用它,有一个名为list的函数)在循环的第一次迭代中映射到与名称list1相同的值,但@987654329 之间没有关系@和list1 -
不容易或可靠地,对象不知道其名称,并且在不同的范围内可能有许多不同的名称。你可以做一些奇怪的事情,比如通过
globals()或locals()搜索,使用is将每个值与你的对象进行比较,但这在很多情况下可能会失败。 -
名称指的是对象,但对象对绑定到它们的名称一无所知;阅读nedbatchelder.com/text/names.html
-
这个问题看起来和这个类似:- Python Introspection - How can i get name of the object?
标签: python