- Нахождение повторов символа
- Нахождение повторов символа
- Как посчитать уникальные символы в строке в Python
- Считаем уникальные символы при помощи множества
- Считаем уникальные символы в строке с помощью dict.fromkeys()
- Подсчет уникальных символов с помощью цикла for
- Строка: Найти все повторяющиеся символы и заменить их
Нахождение повторов символа
Дан текст.
В каждом слове каждого предложения для повторяющихся литер произвести следующую замену:
повторные вхождения литер удалить, к первому вхождению литеры приписать число вхождений литеры в слово.
Пример: ‘((aaabbccccddd)(eeefggghhkl)) преобразуется в ‘((a3b2c4d3)(e3fg3h2kl)
Сижу 2 часа, и всё ещё не могу понять как это сделать, потому что не представляю реализацию такого задания.
Единственное решение, что я нашёл в интернете это вот:
l = "(aaabbccccddd)(eeefggghhkl)" r = [None] for c in l: if c != r[-1]: r.append(c) n_l = ''.join(r[1:]) print(n_l)
Но такое решение не удовлетворяет условие задания.
Прошу вас помочь, объяснить как это делается, и если можно ресурс, на котором описано че к чему и как подобное реализуется.
Нахождение символа в файле
Доброго времени суток, нужно найти в файле строчку, где в конце стоит знак восклицания и вывести +.
Нахождение повторов в массиве
Такая задача. Есть массив строк. Необходимо определить для каждого элемента массива, сколько раз.
Удалить в текстовом файле каждую строку, в которой число повторов какого-либо символа превышает заданное
подскажите пожалуйста. Есть .txt файл, в нем нужно по удалять строчки — где какой либо символ.
Вывести символы строки в порядке убывания количества повторов и указанием числа их повторов
Напишите пожалуйста алгоритм, к дополнению задачи:заполнить в массив только имеющиеся буквы.
Вводится строка, вывести символы строки в порядке убывания количества повторов и указанием числа их повторов
вводится строка, вывести символы строки в порядке убывания количества повторов и указанием числа их.
Нахождение повторов символа
Дан текст.
В каждом слове каждого предложения для повторяющихся литер произвести следующую замену:
повторные вхождения литер удалить, к первому вхождению литеры приписать число вхождений литеры в слово.
Пример: ‘((aaabbccccddd)(eeefggghhkl)) преобразуется в ‘((a3b2c4d3)(e3fg3h2kl)
Сижу 2 часа, и всё ещё не могу понять как это сделать, потому что не представляю реализацию такого задания.
Единственное решение, что я нашёл в интернете это вот:
l = "(aaabbccccddd)(eeefggghhkl)" r = [None] for c in l: if c != r[-1]: r.append(c) n_l = ''.join(r[1:]) print(n_l)
Но такое решение не удовлетворяет условие задания.
Прошу вас помочь, объяснить как это делается, и если можно ресурс, на котором описано че к чему и как подобное реализуется.
Нахождение символа в файле
Доброго времени суток, нужно найти в файле строчку, где в конце стоит знак восклицания и вывести +.
Нахождение повторов в массиве
Такая задача. Есть массив строк. Необходимо определить для каждого элемента массива, сколько раз.
Удалить в текстовом файле каждую строку, в которой число повторов какого-либо символа превышает заданное
подскажите пожалуйста. Есть .txt файл, в нем нужно по удалять строчки — где какой либо символ.
Вывести символы строки в порядке убывания количества повторов и указанием числа их повторов
Напишите пожалуйста алгоритм, к дополнению задачи:заполнить в массив только имеющиеся буквы.
Вводится строка, вывести символы строки в порядке убывания количества повторов и указанием числа их повторов
вводится строка, вывести символы строки в порядке убывания количества повторов и указанием числа их.
Как посчитать уникальные символы в строке в Python
Подсчет символов в строке – распространенная задачка для начинающих программистов. В этой статье мы разберем три способа посчитать уникальные символы в строке: путем помещения символов во множество, словарь или список.
Считаем уникальные символы при помощи множества
Чтобы подсчитать количество уникальных символов в строке, сперва используйте функцию set() для преобразования строки во множество уникальных символов. Затем при помощи функции len() определите количество элементов множества.
my_str = 'bobby' result = len(set(my_str)) print(result) # 3
Функция set() принимает итерируемый объект и возвращает новый объект класса ‘set’ (т.е. множество) с элементами исходного объекта. Множество – это неупорядоченная коллекция уникальных элементов, поэтому преобразование строки во множество удаляет все повторы символов.
my_str = ‘bobby’ print(set(my_str)) # Вывод: #
Последний шаг – использование функции len() для получения общего количества элементов множества.
my_str = 'bobby' result = len(set(my_str)) print(result) # Вывод: # 3
Функция len() возвращает длину (количество элементов) объекта. Аргументом, который принимает функция, может быть последовательность (например, строка, кортеж или список) или коллекция (словарь, множество, замороженное множество).
Если вам нужно не посчитать уникальные символы в строке, а получить их, используйте вместо функции len() метод str.join() .
my_str = 'bobby' result = ''.join(set(my_str)) print(result) # Вывод: # byo
Метод str.join() принимает в качестве аргумента итерируемый объект и возвращает строку, которая является конкатенацией строк в итерируемом объекте. Строка, к которой обращается метод, используется в качестве разделителя между элементами.
Примечание редакции: подробнее о методе join() можно почитать в статье “Метод join() и объединение строк в Python”.
Считаем уникальные символы в строке с помощью dict.fromkeys()
При таком подходе сперва нужно создать из строки словарь при помощи метода dict.fromkeys() . Затем, используя функцию len() , можно получить количество элементов словаря.
my_str = 'bobby' result = len(dict.fromkeys(my_str)) print(result) # Вывод: # 3
Метод dict.fromkeys принимает итерируемый объект и значение и создает словарь. Ключами этого словаря будут элементы итерируемого объекта. Все ключи будут иметь одно значение – то, которое было передано dict.fromkeys() в качестве аргумента. Если значение не передано, по умолчанию используется None.
my_str = ‘bobby’ print(dict.fromkeys(my_str)) # Вывод: #
Ключи словаря уникальны, поэтому все дублирующиеся символы удаляются.
Если вам нужно не посчитать уникальные символы в строке, а получить их, используйте вместо функции len() метод str.join() .
my_str = 'bobby' result = ''.join(dict.fromkeys(my_str).keys()) print(result) # Вывод: # boy
При помощи метода dict.keys() мы получили ключи словаря, а при помощи str.join() объединили их в строку.
Начиная с Python 3.7 словари сохраняют порядок вставки ключей.
Подсчет уникальных символов с помощью цикла for
Чтобы посчитать уникальные символы в строке при помощи цикла for, нужно проделать следующие шаги:
- Объявите новую переменную, которая будет хранить пустой список.
- Используйте цикл for для итерации по строке.
- Используйте метод list.append() для добавления всех уникальных символов в список.
- Используйте функцию len() для получения длины списка.
my_str = 'bobby' unique_chars = [] for char in my_str: if char not in unique_chars: unique_chars.append(char) print(len(unique_chars)) # 3 print(unique_chars) # ['b', 'o', 'y']
Мы использовали цикл for для перебора символов строки. На каждой итерации мы используем оператор not in , чтобы проверить, нет ли символа в списке. Если такого символа в списке нет, мы добавляем его в конец списка при помощи метода list.append() .
Примечание редакции: познакомиться с оператором not in можно в статье “Операторы in и not in в Python”.
my_list = ['bobby', 'hadz'] my_list.append('com') print(my_list) # Вывод: # ['bobby', 'hadz', 'com']
Последний шаг – использование функции len() для получения длины списка уникальных символов.
Строка: Найти все повторяющиеся символы и заменить их
День добрый! Подскажите, пожалуйста, как найти ВСЕ ПОВТОРЯЮЩИЕСЯ символы в строке и заменить их на то, что я хочу? На данный момент программа находит только один такой символ (либо же только вставляет один в p), либо ищет количество этих повторяющихся символов через str.count(), что бесполезно, потому что нужны индексы, а она их не возвращает..
for i in range(rand): print('Попыток: ', rand-i) inp = input('Введи букву, которая может быть в слове: ') if inp in l: index = l.find(inp) p[index] = inp print(p) else: print('Такой буквы в слове нет!')
Строка: Найти самое короткое слово в файле и заменить все его символы на $
Уже пару часов пытаюсь написать код, совсем не понимаю как можно это выполнить. Есть файл.
Заменить все повторяющиеся символы на другой символ
Строка "ASDASdsadawqqwr+==we//sadwq==" Нужно заменить все ‘=’ на ‘/’
Заменить все повторяющиеся символы в строке пробелами
заменить все повторяющиеся символы в строке пробелами си
Дана строка. Вывести все не повторяющиеся символы на четных позициях
Дана строка. Вывести все не повторяющиеся символы которые находятся на четных позициях
В строке исключить все повторяющиеся символы, а цифры заменить нулями.
В строке исключить все повторяющиеся символы, а цифры заменить нулями.
YanchEz, Если вам надо отследить все одинаковые символы из некой строки и их удалить к примеру(или заменить), то как-то так:
строка — азбука, символ — а, вывод — збук
s = input() for i in range(s.count('а')): s = s.replace('а', '') print(s)
Liakim2006, очень плохо.
1. replace и так меняе все, что находит. Т.о. цикл не имеет смысла.
2. для начала нужно, как минимум, определить — что именно «а» появляется в слове более одного раза
Добавлено через 2 минуты
Если развить эту мысль, то
s = 'azbuka' for i in set(s): if s.count(i) > 1: s = s.replace(i, '*') print(s) # *zbuk*
Дело в том, что str.replace() скорее всего у меня не получится здесь использовать. Удобнее всего было бы применить list.index(), но проблема в том, что метод возвращает всего одно — первое вхождение, а последующие игнорирует. Мне кажется этот момент очень неудобно реализован в питоне, ну либо, что очень вероятно, мне просто не хватает думалки и опыта.
Сообщение от YanchEz
У меня есть 3 основные переменные — в первую входит случайное слово из списка, во вторую идут случайно выбранные буквы из этого слова, а в третью я кладу (всё слово) минус (случайно выбранные буквы), то есть они исчезают оттуда. Потом идёт input() желаемой буквы, которая может быть в этом слове, и далее идёт проверка на наличие этой буквы в изначальной переменной, где слово написано полностью. И тут пока сама сложность — если input(*символ*) там присутствует, то должна быть выведена (третья переменная)+(input(*символ*)), и всё работает, пока в слове эта буква одна. Если их >= 2, то возвращается это слово только с одной вставленной буквой, а нужно 2 или более.
var1 = 'thisissomeworld' var2 = 'iso' var3 = ''.join(i for i in var1 if i not in var2) var4 = input('Letter: ') #s for example result = var3 + var4 * var1.count(var4) print(var1) print(var2) print(var3) print(var4) print(result)
if inp in l: for k in range(0, len(l)-2): if inp == l[k]: p[k] = inp print(p) else: continue
Строка: Заменить все символы, отличные от латинских, цифрой 4
Добрый день! Помогите решить задачу на обработку текстовых данных в VBA. Дан текст – непустая.
Строка: Заменить все латинские строковые символы на заглавные.
Помогите решить задачу. Дана последовательность символов. Заменить все латинские символы на.
Дана строка. Заменить в ней все парные символы на одиночные
Дана строка. Заменить в ней все парные символы на одиночные. Помогите реализовать код. только.
Дана строка произвольного текста. Заменить все символы n на символ m, начиная с позиции k
2.1. Дана строка произвольного текста. Заменить все символы n на символ m, начиная с позиции k.