2

我想找到一种逐行打印字典列表的方法,以便结果清晰易读,列表是这样的。


myList = {'1':{'name':'x',age:'18'},'2':{'name':'y',age:'19'},'3':{'name':'z',age:'20'}...}

结果应该是这样的:

>>> '1':{'name':'x',age:'18'} 
    '2':{'name':'y',age:'19'}
    '3':{'name':'z',age:'20'} ...
4

4 回答 4

4

使用您的示例:

>>> myList = {'1':{'name':'x','age':'18'},'2':{'name':'y','age':'19'},'3':{'name':'z','age':'20'}}
>>> for k, d in myList.items():
    print k, d

1 {'age': '18', 'name': 'x'}
3 {'age': '20', 'name': 'z'}
2 {'age': '19', 'name': 'y'}

更多示例:

字典列表:

>>> l = [{'a':'1'},{'b':'2'},{'c':'3'}]
>>> for d in l:
    print d

{'a': '1'}
{'b': '2'}
{'c': '3'}

字典词典:

>>> D = {'d1': {'a':'1'}, 'd2': {'b':'2'}, 'd3': {'c':'3'}}
>>> for k, d in D.items():
    print d  

{'b': '2'}
{'c': '3'}
{'a': '1'}

如果你想要字典的键:

>>> D = {'d1': {'a':'1'}, 'd2': {'b':'2'}, 'd3': {'c':'3'}}
>>> for k, d in D.items():
    print k, d

d2 {'b': '2'}
d3 {'c': '3'}
d1 {'a': '1'}
于 2013-04-29T11:31:04.947 回答
2
>>> import json
>>> dicts = {1: {'a': 1, 'b': 2}, 2: {'c': 3}, 3: {'d': 4, 'e': 5, 'f':6}}
>>> print(json.dumps(dicts, indent=4))
{
    "1": {
        "a": 1, 
        "b": 2
    }, 
    "2": {
        "c": 3
    }, 
    "3": {
        "d": 4, 
        "e": 5, 
        "f": 6
    }
}
于 2013-04-29T11:26:54.680 回答
2
myList = {'1':{'name':'x','age':'18'},
          '2':{'name':'y','age':'19'},
          '3':{'name':'z','age':'20'}}
for item in myList:
    print(item,':',myList[item])

输出:

3 : {'age': '20', 'name': 'z'}
2 : {'age': '19', 'name': 'y'}
1 : {'age': '18', 'name': 'x'}

item 用于迭代dict中myList[item]的key,是当前key对应的value。

于 2013-04-29T11:59:56.440 回答
2

还有一个选项 - pprint,用于漂亮的打印。

pprint 模块提供了一种以可用作解释器输入的形式“漂亮打印”任意 Python 数据结构的能力。

词典列表:

from pprint import pprint

l = [{'a':'1'},{'b':'2'},{'c':'3'}]
pprint(l, width=1)

输出:

[{'a': '1'},
 {'b': '2'},
 {'c': '3'}]

带有字典值的字典:

from pprint import pprint

d = {'a':{'b':'c'}},{'d':{'e':'f'}}
pprint(d, width=1)

输出:

({'a': {'b': 'c'}},
 {'d': {'e': 'f'}})
于 2013-04-29T11:33:17.323 回答