And for speed, this might be a bit faster for a very large number of records:
[row[0] for row in db.executesql(db()._select(db.table.id))] or roughly equivalent: db().select(db.table.id, processor=lambda r,f,c,cacheable: [row[0] for row in r]) Anthony On Tuesday, February 19, 2013 5:15:55 PM UTC-5, Niphlod wrote: > > @brac.... until now I interpreted your question in a "performance-wise" > way. > If you referred to the "shortest" way and not care about performance, it's > > ids = db().select(db.table.id).as_dict().keys() > > On Tuesday, February 19, 2013 11:02:23 PM UTC+1, Niphlod wrote: >> >> as_dict() iterates on the Rows object (it's a method on the fetched >> resultset). It's not speedier by any measure than a loop. >> >> >> >> On Tuesday, February 19, 2013 10:55:07 PM UTC+1, Richard wrote: >>> >>> May be better use .as_ditc() but not sure the id get mapped into dict >>> key you have to check, but if the key id is the row id you can iterate >>> directly over dict like this : >>> >>> for id in dict: >>> ... >>> >>> >>> On Tue, Feb 19, 2013 at 4:51 PM, Richard Vézina >>> <ml.richa...@gmail.com>wrote: >>> >>>> You can try this and see what you can do with that : >>>> db(db.table).select(db.table.id).as_list() >>>> >>>> By selecting db.table.id you will prevent the overhead of web2py >>>> compute=, represent=, etc. >>>> >>>> Richard >>>> >>>> >>>> On Tue, Feb 19, 2013 at 4:26 PM, <brac...@gmail.com> wrote: >>>> >>>>> If I select all items in a database: >>>>> >>>>> rows = db(db.table).select() >>>>> >>>>> I can get the ids by doing something like: >>>>> >>>>> ids = [] >>>>> for row in rows: >>>>> ids.append(row.id) >>>>> >>>>> However, is there a better way to get the ids straight from the rows >>>>> variable (without executing raw sql)? I feel like I'm iterating through >>>>> the >>>>> entire list of items twice by doing this. >>>>> >>>>> -- >>>>> >>>>> --- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "web2py-users" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to web2py+un...@googlegroups.com. >>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>> >>>>> >>>>> >>>> >>>> >>> -- --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.