来自.plist(或xml)的词典中的'for loop'python 3词典

时间:2012-01-17 00:24:41

标签: python dictionary for-loop

希望这里有一个快速的蟒蛇问题......

import plistlib

pl = plistlib.readPlist('/Users/name/Documents/some.plist')

print(pl[0]['keyA'] , pl[0]['keyD'] , pl[0]['keyG'])

我将如何编写for循环或列表函数,循环通过字典将值打印到某些键。

主词典会有30个词条(词典中的词典),每个词条中包含大约40个键。)

示例:

print(pl[0]['keyA'] , pl[0]['keyD'] , pl[0]['keyG'])
print(pl[1]['keyA'] , pl[1]['keyD'] , pl[1]['keyG'])
print(pl[2]['keyA'] , pl[2]['keyD'] , pl[2]['keyG'])
print(pl[n]['keyA'] , pl[n]['keyD'] , pl[n]['keyG'])

其中pl是主词典,然后0 - n引用词典中的词典。

我希望这是有道理的

2 个答案:

答案 0 :(得分:1)

写吧! :P

for sub_dict in pl.values():
    print sub_dict['keyA'], sub_dict['keyD'], sub_dict['keyG']

.values()表示迭代字典的值,因为通常迭代字典会通过其键。在Python 2中使用.itervalues()代替。)

答案 1 :(得分:0)

你的问题与plist无关,它与嵌套词典有关。

根据你的写作,似乎你的pl字典看起来像是:

pl = {0: {'keyA': 1, 'keyD': 2, 'keyG': 3}, 
      1: {'keyA': 11, 'keyD': 12, 'keyG': 13}}

在这种情况下,只需使用:

keys = ['keyA', 'keyD', 'keyG']
for i in range(len(pl)):
    print(' '.join(str(pl[i][key]) for key in keys)

如果所有您的pl键都是数字,这将有效,否则您可能想要使用.items().values(),请查看{{ 3}}