我正在尝试扫描字典引用列表以获取每个字典中的键数。如何引用元素的名称而不是字典的内容? audit_dicts列表中的每个元素都是对现有字典的引用。
audit_dicts = [ osdata, weblogic, tomcat ]
for i in audit_dicts:
print "Length of the %s dictionary is %d lines." % (i.name(), len(i))
我知道它与内容类型是字典有关,但是没有办法在列表中打印元素的名称?我基本上使用列表来存储所有这些字典,以便我可以在一个循环中对它们执行多个操作。另外,有没有办法在同一个循环中声明这些词典?这样做的pythonic方法是什么?我目前有20个不同的数据类型,但我只能在从网络数据构建字典之前单独对每个数据进行delcare。
for i in audit_dicts:
i = {}
答案 0 :(得分:6)
列表不包含名称,它们包含对其他对象的引用。如果您希望能够使用多个索引来引用元素,那么您应该使用其他数据结构,例如dict
。
答案 1 :(得分:0)
如果为此对象设置了属性,则可以使用__name__
属性:
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]))