当字典由两个列表组成时,将 pprint 用于 OrderedDicts
Using pprint for OrderedDicts when dict is made with two lists
当我从两个列表创建 OrderedDict
时,如果我尝试使用 pprint
它没有按预期工作,但是如果我正常创建 OrderedDict
它工作正常。
如果使用两个列表创建 OrderedDict,是否需要采取任何其他步骤来在单独的行中获得每个键值的预期输出?
import pprint
from collections import OrderedDict
pprint 不起作用
l1 = [ 'a', 'b', 'x', 'd']
l2 = [ ['abc', 'def'], ['idk', 'jfk'], ['mnp'], ['oye oye']]
dic = OrderedDict(zip(l1, l2))
pprint.pprint(dic, width = 1)
OrderedDict([('a', ['abc', 'def']), ('b', ['idk', 'jfk']), ('x', ['mnp']), ('d', ['oye oye'])])
有效!!!
dic2 = OrderedDict()
dic2 = {'a': 'abc', 'x' : 'xyz', 'b' : 'boy'}
pprint.pprint(dic2, width = 1)
{'a': 'abc',
'b': 'boy',
'x': 'xyz'}
在您认为有效的版本中,您打印的不是 OrderedDict
,而是普通的 dict
。看到 dic2 = {'a': 'abc', 'x' : 'xyz', 'b' : 'boy'}
是一个普通的字典。
要从 dict
创建 OrderedDict
,您应该这样写:
dic2 = OrderedDict({'a': 'abc', 'x' : 'xyz', 'b' : 'boy'})
结果将与 zip
版本相同。
似乎 Python 2.7 不支持 OrderedDict
中的 pprint
,请参阅 here 了解一些解决方法。
当我从两个列表创建 OrderedDict
时,如果我尝试使用 pprint
它没有按预期工作,但是如果我正常创建 OrderedDict
它工作正常。
如果使用两个列表创建 OrderedDict,是否需要采取任何其他步骤来在单独的行中获得每个键值的预期输出?
import pprint
from collections import OrderedDict
pprint 不起作用
l1 = [ 'a', 'b', 'x', 'd']
l2 = [ ['abc', 'def'], ['idk', 'jfk'], ['mnp'], ['oye oye']]
dic = OrderedDict(zip(l1, l2))
pprint.pprint(dic, width = 1)
OrderedDict([('a', ['abc', 'def']), ('b', ['idk', 'jfk']), ('x', ['mnp']), ('d', ['oye oye'])])
有效!!!
dic2 = OrderedDict()
dic2 = {'a': 'abc', 'x' : 'xyz', 'b' : 'boy'}
pprint.pprint(dic2, width = 1)
{'a': 'abc',
'b': 'boy',
'x': 'xyz'}
在您认为有效的版本中,您打印的不是 OrderedDict
,而是普通的 dict
。看到 dic2 = {'a': 'abc', 'x' : 'xyz', 'b' : 'boy'}
是一个普通的字典。
要从 dict
创建 OrderedDict
,您应该这样写:
dic2 = OrderedDict({'a': 'abc', 'x' : 'xyz', 'b' : 'boy'})
结果将与 zip
版本相同。
似乎 Python 2.7 不支持 OrderedDict
中的 pprint
,请参阅 here 了解一些解决方法。