Python 打印带有嵌套在字典中的列表的格式化文本

标签 python list dictionary formatting

我正在编写一个将一些系统信息输出到文本文件的脚本, 我已经获得了所需的所有信息,但我偶然发现了一个问题,

这是字典的一部分:

machine_info = {
    ...
    'processors': get_processors(),
    ...  
}

get_processors() 返回所有机器处理器的列表,

现在的问题 - 我想打印处理器数据,我现在的打印模板是:

print """...
Processor(s):\t%(processors)s
...""" % machine_info

显然它并没有真正起作用,它打印了整个列表,我想打印它的格式,
看起来像这样:

...
Processor(s):   processor_1_info
                processor_2_info
                ...
...

我怎样才能做到这样的事情? 有没有比使用\t 更好的格式化文本的方法,这样它会更灵活? 另外,有没有更好的方法来打印信息?考虑到最后它会输出到一个文本文件,

谢谢。

最佳答案

像这样:

processors_info = "\n\t\t\t".join(machine_info['processors'])
print "Processor(s):\t{}".format(processors_info)

演示:

>>> info = ['processor_1_info', 'processor_2_info']
>>> processors_info = "\n\t\t\t".join(info)
>>> print "Processor(s):\t{}".format(processors_info)
Processor(s):   processor_1_info
                processor_2_info

另一种使用 string formatting 的方法:

info = ['processor_1_info', 'processor_2_info', 'processor_3_info']
#info = machine_info['processors'] for your code.
print "Processor(s):{:>20s}".format(info[0])
for item in info[1:]:
    print "{:>33s}".format(item)

输出:

Processor(s):    processor_1_info
                 processor_2_info
                 processor_3_info

关于Python 打印带有嵌套在字典中的列表的格式化文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17889880/

相关文章:

ios - "Preloading"Swift 中带键的字典

javascript - 阿里巴巴面试: print a sentence with min spaces

json - 在 Dart 中将 Map 的所有键和值转换为 String

python - 无 initscrip 名称控制台 - CX_freeze

python - 使用 Pandas 数据框列中的整数从另一列内的列表中提取特定值

python - IE7 使用 jQuery 解析 JSON 抛出 "parseerror"

java - 如何存储返回列表以便我可以在另一个类中使用它?

python - 将列表转换为 int 并对 pandas 数据框中的所有元素求和

python - 如何检查生成器是否至少有 N 个元素

c# - LINQ - 获取列表中列表中的所有项目?