Skip to main content
 首页 » 编程设计

python之在 Python 打印语句中访问列表的名称

2025年05月04日8zhenyulu

我正在运行 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') 获取吗? 我知道我可以改用字典(这就是我现在正在做的),但我还是很感兴趣。

请您参考如下方法:

你可以创建一个类来封装一个名字,但是当一个字典就足够的时候,这是一个很大的开销。

class NamedObject: 
    def __init__(self, name, obj): 
        self.name = name 
        self.obj = obj 
 
    def __getattr__(self, attr): 
        if attr == 'name': 
            return self.name 
        else: 
            return getattr(self.obj, attr) 
 
 
unnamed_list = [1, 2, 3] 
named_list = NamedObject('named_list', unnamed_list) 
 
print(named_list) # [1, 2, 3] 
print(named_list.name) # 'named_list'