繁体   English   中英

在python中打印和格式化元组

[英]Printing and formatting a tuple in python

我有这个:

record = (u'U9', [(u'U2', 1.0), (u'U10', 0.6666666666666666), (u'U2', 1.0)])

我希望将此作为文件的打印输出:

U9:U2,U10

注意:输出中仅需要唯一值(尽管U2出现两次,但仅打印一次)

我试过使用:

for i in record[1]:
   print record[1], ":", record[i[0]]

但这给了我:

U9:U2
U9:U10
U9:U2

将唯一值提取到集合中,然后将它们连接到单个字符串中:

unique = {t[0] for t in record[1]}
print '{}:{}'.format(record[0], ','.join(unique))

演示:

>>> record = (u'U9', [(u'U2', 1.0), (u'U10', 0.6666666666666666), (u'U2', 1.0)])
>>> unique = {t[0] for t in record[1]}
>>> print '{}:{}'.format(record[0], ','.join(unique))
U9:U10,U2

请注意,集合是无序的,这就是为什么为此输入得到U10,U2而不是U2,U10 请参阅为什么字典和集合中的顺序是任意的?

如果顺序很重要,请将您的键/值对列表转换为collections.OrderedDict()对象 ,然后从结果中获取键:

>>> from collections import OrderedDict
>>> unique = OrderedDict(record[1])
>>> print '{}:{}'.format(record[0], ','.join(unique))
U9:U2,U10

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM