Solving techniques for iterating over a list and changing the output after every word here's my code  spam = ['apples', 'bananas', 'lemons']  def funcc(spam):     for i in range(len(spam) - 1):         print(spam[i], ',')     print('and', spam[-1])   I need to make a function which returns a string with all the items separated by a comma and a space with 'and' inserted before the last item. But my function should be able to work with any list value passed on it. I don't need the full code to resolve my problem, just asking for techniques to solve this task!
How would you make a comma-separated string from a list of strings? What would be your preferred way to concatenate strings from a sequence such that between every two consecutive pairs a comma is added. That is, how do you map, for instance, ['a', 'b', 'c'] to 'a,b,c'? (The cases ['s'] and [] should be mapped to 's' and '', respectively.)  I usually end up using something like ''.join(map(lambda x: x+',',l))[:-1], but also feeling somewhat unsatisfied.
See all my questions across all Stack Exchange sites? Alias and functions From the bash manual     The rules concerning the definition and use of aliases are somewhat   confusing. Bash always reads at least one complete line of input   before executing any of the commands on that line. Aliases are   expanded when a command is read, not when it is executed. Therefore,   an alias definition appearing on the same line as another command does   not take effect until the next line of input is read. The commands   following the alias definition on that line are not affected by the   new alias. This behavior is also an issue when functions are executed.   Aliases are expanded when a function definition is read, not when the function is executed, because a function definition is itself a   compound command. As a consequence,   aliases defined in a function are not available until after that function is executed. To be safe, always put alias definitions on a   separate line, and do not use alias in compound commands.   The two sentences "Aliases are expanded when a function definition is read, not when the function is executed" and "aliases defined in a function are not available until after that function is executed" seem to be contrary to each other.  Can you explain what they mean respectively? I have 5 tables and a section after them. After creation of an output file I have two tables on one page, then a section and last 3 tables on next page.  What I want to achieve is to put tables and section below them.  \begin{table}[ht]\footnotesize \centering \begin{tabular}{|ll|} ...... \end{tabular} \label{tab:result} \end{table}  \section{Section below tables} Sending email with PHP from an SMTP server What does the TLS 1.2 client finished message contain? I am implementing TLS 1.2 and I'm stuck on the client finished message.   My question is: what is the size and structure of a clients finished message in TLS 1.2 when using the ECDHE_RSA_AES_128_GCM_SHA256 cipher suite.   I searched for this question and someone somewhere stated its size is 48 bytes; more specifically:   12 byte verify data 1 byte handshake type 3 byte verify data length and 32 byte MAC   Is that really correct?   I mean: according to  finished messages have {verify_data[verify_data_length]} and verify_data = PRF(master_secret, finished_label, hash(handshake_messages). Also, according to RFC 5246 section 5 PRF(secret, label, seed) = P_&lt;hash&gt;(secret, label+seed) and P_hash(secret, seed) = HMAC_hash(secret, A(1) + seed). So, when I compute HMAC using SHA256 for verify_data its size is 32 byte.   As a result, I'm a bit confused in relation to the verify_data size and the finished message structure. Can anyone help me to understand this and/or maybe put me on the right track somehow? Can quarks be considered real and elementary? Configuring ADB for Nexus 4 on Ubuntu 11.10 I'm trying to deploy and test an Android app on my Nexus 4 from my Ubuntu 11.10 computer, but ADB doesn't recognize it. I think I need the Google USB drivers, but I cannot find instructions on how to install them on Ubuntu.  How can I install the drivers on Ubuntu 11.10 so that ADB will recognize my N4? What are some examples of manifolds that do not have boundaries and are not boundaries of higher dimensional manifolds?  Is any $n$-dimensional closed manifold a boundary of some $(n+1)$-dimensional manifold? How can one motivate the relativistic momentum? Motivating the non-relativistic momentum $$\mathbf{p} = m\mathbf{v}$$ is quite easy: it is meant to represent the quantity of motion of the particle, and since the mass is one measure of quantity of matter it should be proportional to mass (how much thing is moving) and should be proportional to velocity (how fast and to where it is moving). Now, in Special Relativity the momentum changes. The new quantity of motion becomes $$\mathbf{p} = \dfrac{m\mathbf{v}}{\sqrt{1-\dfrac{v^2}{c^2}}}$$ Or, using $\gamma$ the Lorentz factor $$\mathbf{p} = \gamma(v) m\mathbf{v}$$ where I write $\gamma(v)$ to indicate that the velocity is that of the particle relative to the frame in which the movement is being observed. The need for this new momentum is because the old one fails to be conserved and because using the old one in Newton's second law leads to a law which is not invariant under Lorentz transformations. So the need for a new momentum is perfectly well motivated. What I would like to know is how can one motivate that the correct choice for $\mathbf{p}$ is the $\gamma(v)m\mathbf{v}$. There are some arguments using the mass: considering a colision, requiring momentum to be conserved, transform the velocity and then find how mass should transform. Although this work, it doesn't seem natural, and it is derived in one particular example. On my book there's even something that Einstein wote saying that he didn't think it was a good idea to try transforming the mass from $m$ to $M = \gamma(v)m$, that it was better to simply keep $\gamma$ on the new momentum without trying to combine it with the mass. So I would like to know: without resorting to arguments based on transformation of the mass, how can one motivate the new form of momentum that works for special relativity? When to use virtual destructors? I have a solid understanding of most OOP theory but the one thing that confuses me a lot is virtual destructors. I thought that the destructor always gets called no matter what and for every object in the chain. When are you meant to make them virtual and why? Add a "voted to close" activity event somewhere on the user profile page Often when I vote to close, I want to go back and check the comments on the question, to see if it's been improved, to comment further, or to answer the question.  It would be helpful to add a bit of a trail so I can find those questions again. I'm suggesting adding an event to the Activity page on the user profile, because this is the logical spot for the given action.  I realize the Activity page is public, but I don't see why this content couldn't be added only for the currently logged-in user.  An alternative would be to add a new tab on the user profile page that only lists current-user content, and is not shown publicly. I'm sure there are other events, data, or statistics that could be shown here as well, so I'm certain a new tab like this wouldn't be underutilized.    One thing that could be done instead of this is to always add a comment stating why I voted to close. This works well enough, but only some of the time -- for example, if there is already a vote to close as a duplicate and a comment with a link to that duplicate, I'm not going to add a comment myself if I have nothing to add aside from a close vote.  Another way to do it would be to favourite the question. This only works well to a point since questions that get voted to close don't necessarily end up being downvoted (i.e., for my "closed favourites," I couldn't just look at the last page of my favourites).    Related: Jon Skeet  that votes to close on your own questions be shown in the Recent Activity area, which is not what I'm requesting here. How exactly is Arda supposed to be an ancient Earth? As most Tolkien fans know, Arda (Tolkien's world) is supposed to be Earth in its past, and all its stories are supposed to have happened long ago on this very same planet. Of course, this is fiction, so this is not supposed to be actually true.  But, if one wanted to roll with it... how could it possibly make sense from a geographical standpoint? All maps of Middle Earth (before or after the destruction of Beleriand and Numenor) just don't match anything on Earth, even when considering continental drift.  Of course, one could simply say "the Valar reshaped it (again)", but not only this is a bit unsatisfactory, it also doesn't make much sense in context, as Valar are well known for not wanting to meddle with Arda unless absolutely needed, and even then, as little as possible.    Update:  Hey, please calm down, guys. Mine was not a rant at all. And I know perfectly well this is fiction (and I've stated it plainly). The sense of my question was: "If one wanted to follow this line of thought and assume Arda should be related to Earth as Tolkien said, then how could this relationship be explained?". I just bought a new config ( ASUS p8z68-v lx, i5-2500k + ram and new graphic card ). Coming back and installing it in my old computer, I just saw that my DVD player was on IDE (yup…).  So, I needed to install windows 7 64bits from my usb key. Fine, I made my usb key bootable and copy the official DVD on it (the same version that was on my old computer), set BIOS to boot on it first and started the computer up.  It worked fine until it asks me for cd/dvd drivers (which is funny since, I do it via USB because I can't plug in my DVD player :D) I have 3 SATA HDD plugged in and that's it.  I made a small google search and found that it could be SATA or RAID drivers. Fine, I took another USB KEY and put all my motherboard drivers on it (from the CD sold with the MB) and none of those drivers seemed to work. I tried downloading new drivers from ASUS website and same effect.  Any idea but no "buy a new DVD player", I'm now broke for the month :) ? ALTER table - adding AUTOINCREMENT in MySQL Backstory: I've been developing a game with LibGDX for the past two years, and I've seen it refactored more times than I remember.  I jumped on the iOS iKVM port as soon as it was released. But I've been struggling with it ever since in regards to cross platform networking.  Kryonet will not port over to iOS unfortunately. So it's either I ditch Kryonet, or lose a large chunk of my target audience (iOS Users)  My question for you is:  I noticed LibGDX has cross platform classes ready for sockets and HTTP Requests, but no documentation exists for these sockets at all.  Has anyone used these sockets at all in the past, and does anyone know how they work? Signature/date line with fixed width I'm trying to create a signature and date line in a document.  I need the date line to always be in the same spot on the page no matter what name is under the signature line, such as:  ----------------------   ---------------------- Representative           Date  ----------------------   ---------------------- Program Manager          Date   Here is the code I currently have:  \makebox[2.5in]{\hrulefill} \hspace {1.0in}\makebox[2.5in]{\hrulefill} \\ User Representative \makebox[2.5in][r]{Date} \\  \vspace{.2in} \makebox[2.5in]{\hrulefill} \hspace {1.0in}\makebox[2.5in]{\hrulefill} \\ Program Manager \makebox[2.5in][r]{Date} \   I want to be able to change the names, such as change Program Manager to Joe Foo and have the word 'Date' stay in the exact place.  Any help would be greatly appreciated.  I'm still a newbie at TeX so please forgive my ignorance. Let $f:\mathbb{R}\longrightarrow \mathbb{R}$ a differentiable function such that $f'(x)=0$ for all $x\in\mathbb{Q}$ Let $f:\mathbb{R}\longrightarrow \mathbb{R}$ a differentiable function such that $f'(x)=0$ for all $x\in\mathbb{Q}.$ $f$ is a constant function? I'm a complete layperson. As I understand, dark matter theoretically only interacts with the gravitational force, and doesn't interact with the other three fundamental forces: weak nuclear force, strong nuclear force, and electromagnetism.  Those are my understandings going in. If I'm wrong, please correct me. I've done some googling, and I haven't found anything confirming or denying that dark matter is affected by either of the fundamental nuclear forces.  So since dark matter only interacts with gravity, what causes any dark matter particle to be repelled from another? If they can pass freely through each other, and they are gravitationaly attracted to each other, why don't such particles clump together in a single 'point' in space?   It seems to me that particles occupying a single 'space' are philosophically not distinct particles, but I don't know how actual physics would play into this.  Edit , author's credentials unknown, but implicitly claims to be a physicist or astronomer, says "...[P]hysicists generally take all dark matter to be composed of a single type of particle that essentially interacts only through gravity."  Edit 2 The author is this , "Professor of Science on the physics faculty of Harvard University." I need to make a small correction in a video I uploaded to YouTube. Googling shows that this is not possible. However, I remember seeing it done before. I posted a comment on a video saying that a certain part of the video was missing. I got a reply back that it was fixed, and when I went to see the video again, it was changed. How was this done? When should one use final for method parameters and local variables? I've found a couple of references () that suggest using final as much as possible and I'm wondering how important that is. This is mainly in the the context of method parameters and local variables, not final methods or classes. For constants, it makes obvious sense.  On one hand, the compiler can make some optimizations and it makes the programmer's intent clearer. On the other hand, it adds verbosity and the optimizations may be trivial.  Is it something I should make an effort to remember?