Ask your own question, for FREE!
MIT 6.00 Intro Computer Science (OCW) 99 Online
OpenStudy (anonymous):

How would I write the definition for this def shift(my_list): "Shifts the list [x1,x2,...,xn] to [x2,x3,...,xn,x1]."

OpenStudy (anonymous):

If you don't get what i am trying to do, i am defining a function that will shift the list to the right moving the first element to the end.

OpenStudy (anonymous):

You can try this - it may not be pretty, but it works. I threw in print statements so you could see whats happening. def shifting(): a = [1,2,3,4] for i in range(5): print "Original List:", a b = a[1:] b.append(a[0]) print "Ammended List:", b print a = b

OpenStudy (anonymous):

You could do it just once, or as many times as you wish, by changing the range(x).

OpenStudy (anonymous):

I am using the second one right now but it is a little confusing because there giving us problems they never taught like the one i asked you. So i was wondering if the one for this study board is better?

OpenStudy (anonymous):

I don't know the other course...sorry.

OpenStudy (anonymous):

Oh okay but have you had any problems with the course your using. Where the stuff asked for hasn't been taught or is it a good course?

OpenStudy (anonymous):

It is a very good course so far. So far, everything matches up quite good. Of course you need to do extra reading for some things, but that is to be expected from a free online course. The teacher-pupil aspect does not exist, so you need to be willing to work a little, and be autonomous.

OpenStudy (anonymous):

Thank You

OpenStudy (anonymous):

def shift(aList) aList.append(aList[0]) del aList[0] return aList

OpenStudy (anonymous):

nice!

OpenStudy (anonymous):

:) I'm really warming to lists.

OpenStudy (anonymous):

Thank You. I actually came up with the exact same script last night. I guess i was just cramming my brain too much because i took an hour break. Then I laid down and as I was laying down going to sleep i was like wouldn't it be easier to just take the first element and move to end using append then delete the first.

OpenStudy (anonymous):

A couple of things to consider.. Do you wish to modify the list in place, or return a new list constructed by shifting the old one. In general I would recommend the latter since it has fewer side effects. #does not modify def shift(thelist): return thelist[1:] + thelist[0] #modifies def inplace_shift(thelist): thelist.append(thelist.pop(0))

OpenStudy (anonymous):

Oh that's nice polpak! I hadn't thought about how it would modify (or not) the list...I tried to break down Keen's function but found it really hard, now with your input I am thinking about how much I don't know about programming, :-) and I think I will try simplifying my own work. Thanks!

Can't find your answer? Make a FREE account and ask your own questions, OR help others and earn volunteer hours!

Join our real-time social learning platform and learn together with your friends!
Can't find your answer? Make a FREE account and ask your own questions, OR help others and earn volunteer hours!

Join our real-time social learning platform and learn together with your friends!