Ask HN: Have I discovered an insoluble programming problem?

1 points by zeynel1 ↗ HN
I am trying to do a simple list manipulation in Python and I spent about a week learning lists and related topics and I still cannot display a columnar list. I asked the question here and stackoverflow but with no luck. I would appreciate any help. Thanks

(Links in the comment and sorry about the title!)

5 comments

[ 3.9 ms ] story [ 24.3 ms ] thread
Here is how you do it: input is the list of words, with duplicates you need an additional list (let's call it x) and an integer (let's call it i) for each item in the list, if it isn't in x, add it, increment i, and print it followed by a space if it is in x, print a newline, and spaces equal to the number of characters in each preceding word after index i in x + 1 for each word in that range. There should be x.index(item) - i things, and this loops. Python indices, I would think, take care of the special case where you need to loop around, sans the printing of a newline, so make sure you do that after you print the spaces for the last item.

I'm sorry you seemed to have not gotten help on this. The title seemed a little silly to me.

Also, the formatting was goofed up, sorry about that. Really isn't too bad a problem when you think about it in terms of, where do things go when you print them, and where is the cursor. That's what x and i are respectively.
Thanks but I am sorry but I don't understand this solution.

In my problem, I get a string s that user enters in a form.

I append that to an empty list L = []

then I test if the last saved string is the same as the new string. If same, I write it on the same column; if not the cursor moves to next column (I was trying to do this with tables) and as long as the user types the same string the cursor stays on the same column. If a new string is typed; a new column is started; and so on.

I don't think your solution is to this problem. You assume that there is a list with duplicates.

Does this make sense?

Okay, here's the thing: That's not actually what your example seems to be doing. If you have a b a Then the second a should go in the first column, right? If not, then this is trivial. If so, then the input is all appended to the list.