1

辞書参照のリストをスキャンして、各辞書のキーの数を取得しようとしています。辞書の内容ではなく、要素の名前を参照するにはどうすればよいですか? 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 の異なる辞書のデータを持っていますが、Web データから辞書を構築する前に、それぞれを個別に宣言することしかできませんでした。

for i in audit_dicts:
    i = {}
4

2 に答える 2

6

リストには名前は含まれず、他のオブジェクトへの参照が含まれます。要素を参照するためにインデックス以上のものを使用できるようにしたい場合は、 などの別のデータ構造を使用する必要がありますdict

于 2013-05-20T13:49:05.440 に答える
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 を使用することをお勧めします。

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]))
于 2013-05-20T13:57:37.053 に答える