我有两个数组,例如,第一个可能是:
self.history = [[1, 15, 12, 51], [15, 5, 12, 4]]
和第二个:
date = ["10.11.2014", "11.11.2014", "12.11.2014", "13.11.2014"]
我需要输出以下格式:
""10.11.2014,1,15\n" + "11.11.2014,15,5\n" + "12.11.2014,12,12\n" + "13.11.2014,51,4\n""
我已经实现了一次这个结果,但重新启动后它再也无法工作了。
以下是相关的代码段:
zips = zip(*self.history)
zips2 = zip(date_arr, zips)
print zips2
zips = ['"{},{}\\n" + '.format(a, ','.join(b)) for a, b in zips2]
for i in zips:
returning = returning + i
print returning
self.history = returning
return self.history
返回以下错误(在django中):"序列项0:期望字符串,int found"。 导致错误的原因是什么?
答案 0 :(得分:4)
"\n".join(','.join(str(i) for i in x) for x in zip(date, *history))
答案 1 :(得分:1)
问题在于此部分join(b) for a, b in zips2
。 join(b)失败,因为b是int
的列表。在调用int
之前,您需要将此string
列表转换为join
的列表。
将此更改为:
join((str(i) for i in b)) for a,b in zips2
它应该有用。
这是我的答案:
history = [[1, 15, 12, 51], [15, 5, 12, 4]]
date = ["10.11.2014", "11.11.2014", "12.11.2014", "13.11.2014"]
result = []
for k, v in zip(date, zip(*history)):
result.append('%s,%s\n' % (k, ','.join([str(a) for a in v])))
print result
答案 2 :(得分:0)
>>> [ ",".join(map(str,x))+'\n' for x in zip(date,*history) ]
['10.11.2014,1,15\n', '11.11.2014,15,5\n', '12.11.2014,12,12\n', '13.11.2014,51,4\n']
或
>>> " + ".join([ "\""+",".join(map(str,x))+"\n\"" for x in zip(date,*history) ])
'"10.11.2014,1,15\n" + "11.11.2014,15,5\n" + "12.11.2014,12,12\n" + "13.11.2014,51,4\n"'