Python Forum
List vs index: - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: Homework (https://python-forum.io/forum-9.html)
+--- Thread: List vs index: (/thread-28007.html)



List vs index: - Frederico_Caldas - Jul-01-2020

Hello all,

i'm trying to understand what should i change on my code so that i can use any words / sentence on the string:

Given a string, display only those characters which are present at an even index number.

1. My code:

Str='pynative'
a=list(Str)
print(a)
for letter in a:
    index=a.index(letter)
    if index % 2==0:
        print('index=',index,'letter=', letter)
2. The result:

Output:
['p', 'y', 'n', 'a', 't', 'i', 'v', 'e'] index= 0 letter= p index= 2 letter= n index= 4 letter= t index= 6 letter= v
3. What to do to use any word and get the correct index position?

result above is ok but not suitable for example if i have a string='Hello World'.
the code does not recognize that each l occupies a different index position.

thanks in advance
frederico


RE: List vs index: - ndc85430 - Jul-01-2020

Look up the enumerate function.

Also, you don't need to make a list out of the string - strings are already sequences, so can be indexed the same way as lists.


RE: List vs index: - deanhystad - Jul-01-2020

What do you want to do? I don't mean "How are you going to program", but "What do you want to do?" Can you write a concise description of what you want your program to do? That is the first step in writing a program, and that description should be the first thing you mention when asking questions about your program.

I am writing a program that prints every other letter in a string starting with the first letter (index 0). If the string is "Hello World" the output should be:
index = 0 letter = H
index = 2 letter = l
index = 4 letter = o
index = 6 letter = W
index = 8 letter = r
index = 10 letter = d

From the description you would see the solution involves calculating even numbers in the range 0 to the length of the string and using the index to get the letter. You could write this in pseudo code:
for index in range 0 to length(string)
    print index and string[index]
Then convert to code.

If you start with code you risk doing weird things like counting by 1 and using the modulo operator to find even numbers.


RE: List vs index: - Frederico_Caldas - Jul-03-2020

(Jul-01-2020, 01:14 PM)deanhystad Wrote: What do you want to do? I don't mean "How are you going to program", but "What do you want to do?" Can you write a concise description of what you want your program to do? That is the first step in writing a program, and that description should be the first thing you mention when asking questions about your program.

I am writing a program that prints every other letter in a string starting with the first letter (index 0). If the string is "Hello World" the output should be:
index = 0 letter = H
index = 2 letter = l
index = 4 letter = o
index = 6 letter = W
index = 8 letter = r
index = 10 letter = d

From the description you would see the solution involves calculating even numbers in the range 0 to the length of the string and using the index to get the letter. You could write this in pseudo code:
for index in range 0 to length(string)
    print index and string[index]
Then convert to code.

If you start with code you risk doing weird things like counting by 1 and using the modulo operator to find even numbers.

Thank you ! got it. i was not thinking correctly. i used what you proposed and used the Range with a step of 2 starting at 0. this solved the exercise.


RE: List vs index: - perfringo - Jul-03-2020

You can slice the string:

>>> 'pynative'[::2]
'pntv'



RE: List vs index: - DeaD_EyE - Jul-03-2020

Funny enough, doing this with ord (not the task) gives accidentally the same result.
"".join(c for c in 'pynative' if ord(c) % 2 == 0)
Output:
'pntv'
Coincidence?