Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
List vs index:
#1
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
Reply
#2
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.
Reply
#3
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.
Reply
#4
(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.
Reply
#5
You can slice the string:

>>> 'pynative'[::2]
'pntv'
I'm not 'in'-sane. Indeed, I am so far 'out' of sane that you appear a tiny blip on the distant coast of sanity. Bucky Katt, Get Fuzzy

Da Bishop: There's a dead bishop on the landing. I don't know who keeps bringing them in here. ....but society is to blame.
Reply
#6
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?
Almost dead, but too lazy to die: https://sourceserver.info
All humans together. We don't need politicians!
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  How to fix list index out of range longmen 26 5,888 Apr-27-2022, 05:46 PM
Last Post: deanhystad
  list index out of range OliverG 3 2,326 Sep-03-2021, 12:04 AM
Last Post: itsmycode
  Index List a04j 2 2,911 Jul-10-2021, 01:14 PM
Last Post: BashBedlam
  List index out of range when turning CSV into dict ranbarr 15 6,404 May-12-2021, 10:38 AM
Last Post: ranbarr
  To find the index of the first occurrence of the key in the provided list Angry_bird89 4 3,240 Jun-20-2020, 06:53 PM
Last Post: Angry_bird89
  list index out of range mcgrim 2 2,901 May-25-2019, 07:44 PM
Last Post: mcgrim
  IndexError: list index out of range abdullahali 4 3,842 Jan-17-2019, 07:54 AM
Last Post: buran
  "List index out of range" for output values pegn305 3 5,292 Nov-26-2017, 02:20 PM
Last Post: heiner55
  list index out of range DrPengin 1 3,682 Nov-09-2017, 08:35 PM
Last Post: gruntfutuk

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020