[英]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.