Pythonic/itertools如何完成dict?

2024-10-01 11:19:40 发布

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

def reportCSV(t):
    ret = ''
    for ev in t:
        for p in t[ev]:
            for w in t[ev][p]:
                ret += ','.join((ev, p, w, t[ev][p][w])) + '\n'
    return ret

有什么更像Python的方法来完成这个任务,例如使用itertools之类的?在

在这个例子中,我只是把它写到一个CSV文件中。 t是一个dict t[ev]是一句格言 t[ev][p]是一个dict t[ev][p][w]是一个浮点数

我不知道该怎么用itertools.product在这种情况下。在


Tags: 文件csv方法inforreturndefdict
1条回答
网友
1楼 · 发布于 2024-10-01 11:19:40

你所拥有的可以改写为:

def reportCSV(t):
    result = []
    for t_key, t_value in t.iteritems():
        for p_key, p_value in t_value.iteritems():
            for w_key, w_value in p_value.iteritems():
                row_data = t_key, p_key, w_key, w_value
                result.append(','.join(row_data))
    return '\n'.join(result)

这将更快,因为它将字符串连接在一起,而不是执行大量的串联,并且更高效,因为它使用iteritems(),这样就不需要进行任何额外的字典查找或创建中间列表。在

相关问题 更多 >