Sebastian the Awesome
Sebastian the Awesome

Reputation: 27

Order of array items changing when being printed

I was writing a Python program which includes printing a array created from user input in the order the user inputed each item of the array. Unfortunately, I have had few problems with that; Once it repeated the first item twice with one of the set, and then in another set it put the last 2 items at the beginning. I checked the array in the shell and the array contained the right amount of items in the right order, so I don't know what is going on. My script looks something like this:

i = 1
lines = []
for i in range (1, (leng + 1)):
    lines.append(input())
input() # The data stripped is not used, the input is a wait for the user to be ready.
i = 0
for i in range (0, (leng + 1)):
    print(lines[i - len(lines)])

I searches found me nothing for my purposes (but then again, I could have not used the correct search term like in my last question). Please answer or find a duplicate if existing. I'd like an answer.

Upvotes: 1

Views: 121

Answers (1)

user94559
user94559

Reputation: 60133

Don't you just want this?

for line in lines:
    print(line)

EDIT

As an explanation of what's wrong with your code... you're looping one too many times (leng+1 instead of leng). Then you're using i - len(lines), which should probably be okay but is just the equivalent of i. Another fix for your code could be:

for i in range(len(lines)):
    print(lines[i])

SECOND EDIT

Rewriting your full code to what I think is the simplest, most idiomatic version:

# store leng lines
lines = [input() for _ in range(leng)]

# wait for user to be ready
input()

# print all the lines
for line in lines:
    print(line)

Upvotes: 2

Related Questions