2016-08-16 84 views
1

我写了这个列表解析大熊猫数据帧导出为CSV文件(每个数据帧被写入到不同的文件)到csv框架是字典的值,其中键将是CSV文件名称的一部分。所以在v之上的代码是数据帧,而k是数据帧映射到的字符串。出口清单,清单理解

一位同事表示,使用列表解析不是写入输出文件的好主意。为什么会这样?此外,他说为此使用for循环会更可靠。如果属实,那为什么如此呢?

+0

我认为这是使用'名单comprehension'的循环没有问题,你写的文件通过'to_csv'并且认为它更可靠。 – jezrael

+0

你不知道列表理解是什么。你需要阅读[文档](https://docs.python.org/3.5/tutorial/datastructures.html#list-comprehensions)。列表推导是创建列表的一种方式,而不是写入文件。你需要一个适当的循环来做你正在做的事情。你的同事是对的。 – Kartik

+0

感谢您的评论。 – ropolo

回答

1

一位同事表示,使用列表推导并不是写入输出文件的好主意。为什么会这样?

列表解析通常比for环路更高性能和可读当你建立一个列表(即,使用append以产生具有for循环列表)。

在其他情况下,像您的情况,当需要迭代的“副作用”时,首选for循环。

此外,他说为此使用for循环会更可靠。如果属实,那为什么如此呢?

一个for循环是更具可读性和相关的用于该用途的情况下,恕我直言,因此应首选:

for k,v in df_dict.items(): 
    v.to_csv(str(k)+'.csv') 
+0

感谢您的回答。这点很明确。 – ropolo

+0

我的荣幸!谢谢@ropolo – Daniel