Python中的数组解析问题

2024-05-28 23:16:40 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,我有两个数组,第一个可以是:

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”。 是什么导致了错误?你知道吗


Tags: inself类型fordate代码段格式错误
3条回答
>>> [ ",".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"'

问题就在这一部分join(b) for a, b in zips2。联接(b)失败,因为b是int的列表。在调用join之前,需要将此int列表转换为string的列表。你知道吗

将此更改为: 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
"\n".join(','.join(str(i) for i in x) for x in zip(date, *history))

相关问题 更多 >

    热门问题