How would I write the definition for this def shift(my_list): "Shifts the list [x1,x2,...,xn] to [x2,x3,...,xn,x1]."
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.
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
You could do it just once, or as many times as you wish, by changing the range(x).
thank you and i have one more question to ask which ocw course is better http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/index.htm or http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-189-a-gentle-introduction-to-programming-using-python-january-iap-2010/
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?
I don't know the other course...sorry.
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?
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.
Thank You
def shift(aList) aList.append(aList[0]) del aList[0] return aList
nice!
:) I'm really warming to lists.
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.
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))
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!
Join our real-time social learning platform and learn together with your friends!