On 10/05/16 12:01, Steven D'Aprano wrote:
On Mon, May 09, 2016 at 06:13:32PM +1000, Chris Roy-Smith wrote:

data = [[" " for x in range(9)] for y in range(count)]
for (ddate, mood, walk, lag, sleep) in curs:
         data[row][0]=ddate
         data[row][1]=mood
         data[row][2]=walk
         data[row][3]=lag
         data[row][4]=sleep
         row +=1

While I don't know a better way to do this, it seems a bit awkward, is
there a better way?
Hmmm, it's hard to be sure because we don't really know what count is.
Do you want a bunch of empty rows at the end? My guess is No.

In your code above, you initialise each row with ten spaces, and only
replace five of them. So assuming you need the extra five spaces:

data = [record + [" "]*5 for record in curs]

provided curs returns lists, rather than tuples. (If not, it's
easy to just convert using `list(record)`.

If you don't need the extra five columns, the code is even simpler:

data = list(curs)
Thank you,
that's much better
I thought I needed the extra columns, but I changed things to use 2 lists of lists (one generated with the above line and another to hold my calculated results)


What if you do want extra blank rows? Easiest to just add them at the
end:

# initialise data as above, then add blanks
for i in range(how_many_extra_rows):
     data.append([" "]*10)

which can be simplified to:

data.extend([[" "]*10 for i in range(how_many_extra_rows)])




_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to