Python 通过它引用列表元素';姓名

Python 通过它引用列表元素';姓名,python,Python,我正在尝试扫描字典引用列表,以获得每个字典中的键数。如何引用元素的名称而不是字典的内容?审计目录列表中的每个元素都是对现有词典的引用 audit_dicts = [ osdata, weblogic, tomcat ] for i in audit_dicts: print "Length of the %s dictionary is %d lines." % (i.name(), len(i)) 我知道这与目录类型是字典有关,但是没有办法打印列表中元素的名称吗?我基本上使用列表来存

我正在尝试扫描字典引用列表,以获得每个字典中的键数。如何引用元素的名称而不是字典的内容?审计目录列表中的每个元素都是对现有词典的引用

audit_dicts = [ osdata, weblogic, tomcat ]
for i in audit_dicts:
    print "Length of the %s dictionary is %d lines." % (i.name(), len(i))
我知道这与目录类型是字典有关,但是没有办法打印列表中元素的名称吗?我基本上使用列表来存储所有这些字典,这样我就可以在一个循环中对它们执行多个操作。还有,有没有办法在同一个循环中声明这些词典?什么是蟒蛇式的方法?我目前有大约20种不同的数据分类法,但在从web数据构建词典之前,我只能对每一种分类法进行单独的研究

for i in audit_dicts:
    i = {}

列表不包含名称,它们包含对其他对象的引用。如果您希望能够使用不止一个索引来引用元素,那么您应该使用另一个数据结构,例如
dict

列表不包含名称,它们包含对其他对象的引用。如果您希望能够使用不止一个索引来引用元素,那么您应该使用另一个数据结构,例如
dict

如果为该对象设置了
\uuu name\uuuu
属性,则可以使用该属性:

audit_dicts = [ osdata, weblogic, tomcat ]
for i in audit_dicts:
  name = "unknown";
  try:
    if __name__ in i:
      name = i.__name__;
  except:
    pass
  print "Length of the %s dictionary is %d lines." % (name, len(i))
但最好使用dict而不是list:

audit_dicts = {
  "osdata":osdata, 
  "weblogic":weblogic, 
  "tomcat":tomcat
  }
for key in audit_dicts:
    print "Length of the %s dictionary is %d lines." % (key, len(audit_dicts[key]))

如果为该对象设置了
\uuuuu name\uuuu
属性,则可以使用该属性:

audit_dicts = [ osdata, weblogic, tomcat ]
for i in audit_dicts:
  name = "unknown";
  try:
    if __name__ in i:
      name = i.__name__;
  except:
    pass
  print "Length of the %s dictionary is %d lines." % (name, len(i))
但最好使用dict而不是list:

audit_dicts = {
  "osdata":osdata, 
  "weblogic":weblogic, 
  "tomcat":tomcat
  }
for key in audit_dicts:
    print "Length of the %s dictionary is %d lines." % (key, len(audit_dicts[key]))

使用带有名称和实际dict引用的
dict
如何?为了澄清,您希望将变量名
osdata
weblogic
tomcat
作为字符串?@delnan-正确!我基本上是想打印列表元素的名称……它恰好是指向字典的指针。听起来除了制作另一个引用这些字典的字典之外,没有其他方法了?@sigsegv,但这些不是列表元素的名称。这些是脚本命名空间中引用变量的名称。列表元素没有名称。您可能会从阅读中受益。使用带有名称和实际dict引用的
dict
如何?为了澄清,您希望将变量名
osdata
weblogic
tomcat
作为字符串?@delnan-正确!我基本上是想打印列表元素的名称……它恰好是指向字典的指针。听起来除了制作另一个引用这些字典的字典之外,没有其他方法了?@sigsegv,但这些不是列表元素的名称。这些是脚本命名空间中引用变量的名称。列表元素没有名称。您可能会从读取中受益。或者可能是一个
namedtuple
。或者可能是一个
namedtuple
。它提供对象类型的(非限定)名称,或者如果是函数,则提供在其定义处设置的名称。这几乎总是错误的,而且在任何情况下都不一定是
audit\u dicts
中使用的变量名。而且检查的存在是多种方式的错误。我没有看到任何其他的解决方案。然后我认为它是不可能的,因为这个答案中的代码不起作用。它给出了对象类型的(不合格的)名称,或者它的定义中设置的名称,如果它是一个函数。这几乎总是错误的,而且在任何情况下都不一定是
audit\u dicts
中使用的变量名。而且检查的存在是多方面的错误。我看不出任何其他的解决方案。然后我认为它是不可能的,因为这个答案中的代码不起作用。