RE: Mapping Functions That Take More Than One Argument
- To: mathgroup at smc.vnet.net
- Subject: [mg69894] RE: [mg69864] Mapping Functions That Take More Than One Argument
- From: "David Park" <djmp at earthlink.net>
- Date: Wed, 27 Sep 2006 06:03:46 -0400 (EDT)
Gregory, To map a function with more than one argument over a list, use a pure function with the other arguments filled in. testlist = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; Map[Drop[#, 1] &, testlist] {{2, 3}, {5, 6}, {8, 9}} Or Drop[#, 1] & /@ testlist {{2, 3}, {5, 6}, {8, 9}} Suppose you want to map over two lists, one for each argument? Suppose you want to drop 1 argument in the first list, 2 arguments in the second list, and the last argument in the third list. Do it with a pure function and MapThread. MapThread[Drop[#1, #2] &, {testlist, {1, 2, -1}}] {{2, 3}, {6}, {7, 8}} David Park djmp at earthlink.net http://home.earthlink.net/~djmp/ From: Gregory Lypny [mailto:gregory.lypny at videotron.ca] To: mathgroup at smc.vnet.net Hello everyone, How can I map a functions onto sub-lists when the function takes more than one argument. I can't seem to stumble upon the right syntax. Here's a list of three sub-lists. {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}} I want to drop the first element of each sub-list, that is, 1 from the first, 4 from the second, and 7 from the third. Drop[{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}, 1] gives me {{4, 5, 6}, {7, 8, 9}}, which is what I expected (I'm learning) but not what I want. So, how do I apply Drop to each sub-list? Regards, Gregory