'Getting position based on the letter
Hello this is a little complicated question. I hope you can understand what I'm trying to ask. Let's say I have:
newvar = hoavyeph8
There is an 'e' in this var. I want to know which letter is present before e and write the 'if' function. Like:
if I is present before e:
do something
Like this. I want to know the letter present behind the another letter. And write the function. How can I?
Solution 1:[1]
newvar = "hoavyeph8"
for index, c in enumerate(newvar):
if(c=="e"):
print(f"{newvar[index-1]} is before e")
This will tell you what is before e, I'm not sure what you want to do next.
Solution 2:[2]
I'd recommend first reading TheRavenSpectre's answer, as that is perfectly adequate. If you want to see other ways, continue reading.
What you are asking can be solved two ways: using the find()
function, or using regex (regular expressions). Regex will needlessly complicate it, while find()
is perfectly adequate here.
Using find()
, you can do it two ways, depending if you are only looking for one type of preceding letter or multiple (only i before e, or also a before e). To look for multiple letters:
newvar = "this is a test string"
# search for where s is preceded by a space
i = newvar.find('s')
while i != -1:
if i > 0 and newvar[i - 1] == ' ': # first test that the index of s is not zero so it does not look outside the string
doSomething(newvar, i - 1)
i = newvar.find('s', i+1)
The other case would be to only look for i before e. That can be solved as such: string = "I want you to find the i before e, siE vIe"
j = string.lower().find('ie')
while j != -1:
doSomething(string, j)
j = string.lower().find('ie', j+1)
This code would look for all occurrences of 'ie', regardless of case, perform the operation, then continue looking.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | TheRavenSpectre |
Solution 2 | Eliezer Meth |