Should a table be partitioned before or after an INSERT? I have a fairly simple question that is proving hard to search for.

I need to create a table that will be partitioned and into which (lots of) data will be loaded.

Is it more efficient to create the table with the partitions or add the partitions after I have INSERTed the data?

ADDITION: To make sure I understand the complete picture, if I was to truncate this table to then load (lots of) data again, should I drop the partitions and then add after the load?

ADDTION #2: If I can INSERT the data in the order of the partitions, I assume that would be faster than not?
You can't partition an existing non-partitioned table.  So if you want a partitioned table, you would need to create a partitioned table before inserting any data.

Assuming that you are not using interval partitioning (in which case you're telling Oracle how to automatically add new partitions based on the data), you would almost certainly want to create the appropriate partitions in advance.  If you are range partitioning the table, you could, in theory, create a MAXVALUE partition for the table, load all the data, and then split the MAXVALUE partition into the individual partitions that you want.  But that would involve moving all the data around multiple times which would be much less efficient than simply loading the data into the appropriate partition from the outset.  

Inserting the data "in the order of the partitions" probably won't make a difference from a performance perspective.  Oracle still has to determine for each row which partition to insert it into.  Assuming your indexes are local, it may well be more efficient to load a staging table whose structure matches the structure of a partition, create the appropriate indexes on the staging table, and then doing a partition exchange to exchange an empty partition with the staging table.