2011-06-22 106 views
0

我不确定这是否是正确的语法来做到这一点,但我想打印出列表中的特定元素。Python中的连接,连接列表和字符串

user,activity,data=readfile('data.txt') 
kclust,clusters=kcluster(data,k=3) 
for i in range(len(kclust)): 
    print "Cluster %d: ??" % (i+1,clusters[i]) 
    print [[userobjectIds[r] for r in kclust[i]][:3]] 
    print 

'??'是我已经试过%d和%O,但得到: “类型错误:%O格式:需要一个数字,没有列出”

+1

您是否打算打印一个数字?你可以通过读取'print type(clusters [i])'的输出来验证'clusters [i]'实际上是否包含一个数字(或者你想要的任何类型)。 – Heatsink

+1

任何时候你在为范围(len(foo))做'我:'你可能做错了。我们可以在''listlist comp'中使用'[userobjectIds [v] for v in sublist [:3]]' – Daenyth

+0

@Daenyth:应该是'enumerate(kclust)'(除非'klust'与列表不同)。但这绝对是正确的做法。 –

回答

5

You can use %r:

'r': String (converts any Python object using repr()).

print "Cluster %d: %r" % (i+1,clusters[i]) 
0

我不知道关于kcluster函数,但它似乎返回一个列表,而不是一个数字。或者,您可以尝试:

print "Cluster %d:"%(i+1), clusters[i]