Python: есть ли способ найти и удалить первое и последнее вхождение символа в строку? - PullRequest
0 голосов
/ 02 июня 2019

Проблема:

Дана строка, в которой буква h встречается не менее двух раз. Удалить из этой строки первое и последнее вхождение буква h, а также все символы между ними.

Как мне найти первое и последнее вхождение h? И как я могу удалить их и символы между ними?

#initialize the index of the input string
index_count =0

#create a list to have indexes of 'h's
h_indexes = []

#accept input strings
origin_s = input("input:")

#search 'h' and save the index of each 'h' (and save indexes of searched 'h's into h_indexes
for i in origin_s:

first_h_index =
last_h_index = 

#print the output string
print("Output:"+origin_s[     :     ]+origin_s[     :])

Ответы [ 5 ]

1 голос
/ 02 июня 2019

Используя комбинацию index, rindex и нарезки :

string = 'abc$def$ghi'
char = '$'
print(string[:string.index(char)] + string[string.rindex(char) + 1:])
# abcghi
1 голос
/ 02 июня 2019

Как найти первое и последнее вхождение h?

Первое вхождение:

first_h_index=origin_s.find("h");

Последнее вхождение:

last_h_index=origin_s.rfind("h");

А как я могу удалить их и символы между ними?

Нарезка

1 голос
/ 02 июня 2019

Вам нужно использовать регулярное выражение:

>>> import re
>>> s = 'jusht exhamplhe'
>>> re.sub(r'h.+h', '', s)
'juse'
0 голосов
/ 02 июня 2019

Это поможет вам лучше понять:

string = 'abchdef$ghi'

first=string.find('h')

last=string.rfind('h')

res=string[:first]+string[last+1:]

print(res)

0 голосов
/ 02 июня 2019
string = '1234-123456789'
char_list = []
for i in string:
    char_list.append(string[i])

char_list.remove('character_to_remove')

Согласно документации, remove(arg) - это метод, действующий на изменяемой итерации (например, list), которая удаляет первый экземпляр arg в итерируемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...