Как посчитать количество одинаковых цифр в 4-х значном числе?
На вход получаем два числа, 1000 и 2600. Необходимо вывести все числа с тремя одинаковыми числами (не используя списки). Начал как — то так, но закончить не могу. Как посчитать одинаковые цифры и вывести числа?
num_1 = int(input(‘Введите первое число: ‘))
num_2 = int(input(‘Введите второе число: ‘))
count = 0
for i in range(number1, number2 + 1, 1):
i = str(i)
for num in .
if num == .
.
- Вопрос задан 10 мар. 2023
- 1597 просмотров
3 комментария
Простой 3 комментария
вести число как строчку символов.
пройтись по строчке и посчитать количество символов, т.к. у тебя только цифры, хватит и десяти ячеек подсчета символов, можно просто оформить переменными 🙂
далее смотреть сколько символов нашлось и вывести результат

Модератор @TosterModerator
На вопрос «как сделать» отвечает документация и поиск в интернет.
Тут отвечают на вопросы «почему я сделал, как в документации, а оно не работает. Поискал в интернет, вот запросы, в ответах не нашел. Что я делаю не так?»
Покажите, как вы пробовали решить проблему, приведите код попытки (пусть неудачной), опишите, как запускали, что ожидали и что получилось.
За готовыми решениями — на фриланс. В текущем виде это не вопрос, а задание. Нарушен п.5.12 Регламента.

Модератор @TosterModerator
Фрагменты кода надо размещать в виде текста и оборачивать тэгом code для корректного отображения. Удобно делать кнопкой >
Это обязательно, см.п.3.8 Регламента.
Сюда же относится traceback, ввод и вывод в консоли и другая структурированная текстовая инфа.
Решения вопроса 1

Python developer
(Ответ сгенерирован искусственным интеллектом!)
Вы можете решить эту задачу, преобразовав каждое число в строку, а затем использовать метод count() для подсчета количества вхождений каждой цифры. Затем можно проверить, есть ли у числа три одинаковых цифры, используя условие if. Например:
num_1 = 1000 num_2 = 2600 for i in range(num_1, num_2 + 1): s = str(i) for c in s: if s.count(c) == 3: print(i) break
Здесь мы проходимся по каждому числу i в диапазоне от num_1 до num_2, преобразуя его в строку s. Затем мы проходимся по каждой цифре c в строке s, и если c встречается в строке s три раза, мы выводим число i и переходим к следующему числу. Обратите внимание, что мы используем оператор break, чтобы выйти из цикла, когда мы находим число с тремя одинаковыми цифрами, потому что дальнейший поиск в этом числе бессмысленен.
Посчитать количество одинаковых элементов в списке
Дан список целых чисел. Посчитать, сколько раз в нем встречается каждое число. Например, если дан список [1, 1, 3, 2, 1, 3, 4], то в нем число 1 встречается три раза, число 3 — два раза, числа 2 и 4 — по одному разу.
Решение задачи на языке программирования Python
Для хранения количества каждого встречающегося в списке значения создадим словарь. В нем ключами будут числа, которые встречаются в списке, а значениями — количества этих чисел в списке. Для примера, приведенного выше, в итоге должна получиться такая структура: .
Пусть в программе будет функция, которая заполняет список случайными числами в диапазоне и количестве, указанными пользователем.
Другая функция будет считать количество каждого значения и заносить данные в словарь. Алгоритм подсчета заключается в следующем. Если очередной элемент списка уже есть в качестве ключа словаря, то следует увеличить значение этого ключа на единицу. Если очередного элемента списка нет в качестве ключа в словаре, то такой ключ следует добавить и присвоить ему значение, равное единице.
Для того, чтобы вывести содержимое словаря в отсортированном по возрастанию ключей виде, используется функция sorted . Она сортирует ключи словаря и помещает их в список.
from random import randint def fill_list(minimum, maximum, amount, empty_list): for i in range(amount): empty_list.append(randint(minimum, maximum)) def analysis(from_list, to_dict): for i in from_list: if i in to_dict: to_dict[i] += 1 else: to_dict[i] = 1 lst = [] dct = {} mn = int(input('Минимум: ')) mx = int(input('Максимум: ')) qty = int(input('Количество элементов: ')) fill_list(mn, mx, qty, lst) analysis(lst, dct) for item in sorted(dct): print(f"'': ")
Минимум: 100 Максимум: 104 Количество элементов: 20 '100': 2 '101': 5 '102': 3 '103': 7 '104': 3
С другой стороны, если не требуется сохранять количества значений в программе, а надо только вывести их на экран (сохранить в файл, передать по сети), то задачу проще решить через использование спискового метода count() , который считает, сколько раз переданное в него значение встречается в списке, к которому применяется метод.
Если перебирать элементы самого списка, то метод count() будет вызываться несколько раз на одно и то же значение, если оно встречается в списке не единожды. Чтобы избежать этого, получим из списка множество и будем перебирать его элементы. Во множестве не бывает одинаковых значений.
from random import randint mn = int(input('Минимум: ')) mx = int(input('Максимум: ')) qty = int(input('Количество элементов: ')) lst = [randint(mn, mx) for i in range(qty)] s = set(lst) for i in s: print(f"'': ")
X Скрыть Наверх
Решение задач на Python
Подсчет повторений слов в тексте, деление строки на список слов
Для подсчета повторений слов в тексте необходимо научиться преобразовывать текст/сроку в список слов. Это можно сделать двумя способами:
-
Использовать метод строки str.split() и делить строку по пробелам между словами.
# исходная строка >>> line = 'Деление строки на список слов' # метод строки `str.split()` >>> words = line.split(' ') >>> words # ['Деление', 'строки', 'на', 'список', 'слов']
# исходная строка >>> line = 'Деление строки на список слов' # символ регулярных выражений `\b` >>> import re >>> words = re.split('\W', line) >>> words # ['Деление', 'строки', 'на', 'список', 'слов']
Подсчет повторений слов в тексте или символов в строке.
Подсчет повторений слов в тексте или символов в строке можно осуществить несколькими способами. Но для начала, если будем считать слова в тексте, необходимо этот текст подготовить, а именно очистить от знаков пунктуации и преобразовать его в список слов, как показано выше.
Для этого, возьмем готовый код замены пунктуации из подраздела «Удаление пунктуации из строки» и обернем в функцию text_clear() , далее получим из текста список слов и в цикле посчитаем сколько раз каждое слово встречается в исходном тексте.
def text_clear(text): """Удаление пунктуации""" import string for p in string.punctuation + '\n': if p in text: text = text.replace(p, '') return text def counter(list_element): """Счетчик повторений элементов последовательности""" # создаем словарь, где будем хранить элемент списка в качестве, # ключа, а количество его повторений будет значением count = <> # теперь считаем повторения элементов списка for element in list_element: if count.get(element, None): # если в словаре ключ со значением элемента списка # присутствует, то увеличиваем счетчик на 1 count[element] += 1 else: # если в словаре ключа со значением элемента # спитска НЕТ, то создаем ключ со значением 1 count[element] = 1 # сортируем словарь по количеству повторений слов в тексте sorted_values = sorted(count.items(), key=lambda tpl: tpl[1], reverse=True) return dict(sorted_values) # исходный текст >>> text = ('Подсчет повторений всех слов в тексте или повторений' . ' символов в тексте или символов в строке') # преобразовываем текст в нижний регистр # и удаляем всю пунктуацию >>> text = text_clear(text.lower()) # преобразовываем текст в список слов >>> list_word = text.split() >>> counter(list_word) # # 'подсчет': 1, 'всех': 1, 'слов': 1, 'строке': 1> # теперь считаем количество # повторений символов в строке >>> line = 'абракадабра' # строку в список символов >>> lst = list(line) >>> counter(lst) #
Быстрый способ подсчета повторений элементов в последовательности.
Конечно это все прекрасно работает и хороший пример для самообучения но здесь много кода и к тому же в Python во встроенном модуле collections есть класс Counter() для целей подсчета повторений элементов в последовательности.
Смотрим пример с collections.Counter для подсчета повторений символов в строке:
# считаем количество повторений символов в строке >>> line = 'абракадабра' # строку в список символов >>> lst = list(line) # импортируем счетчик >>> from collections import Counter # готово >>> dict(Counter(lst)) # # все символы, которые повторяются 2 и более раз k:v for k, v in Counter(lst).items() if v > 1> #
- ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
- Преобразование строки в число
- Строку в список, кортеж или множество символов
- Одинарные, двойные и тройные кавычки в строке Python
- Вывод специальных символов в строке Python «как есть»
- Объединение и повторение строк
- Индексирование строк
- Использование срезов строк
- Cрез строки Python от заданного символа/знака до конца строки
- Создание макета для печати базовыми методами строк
- Способы форматирования текстовых строк
- Подсчет повторений слов в тексте, деление строки на список слов
- Удаление слова из строки Python по фрагменту или шаблону
- Удаление пунктуации из строки
- Деление строки по заглавным буквам
- Создание отчетов и писем по шаблонам
Как можно посчитать количество одинаковых элементов в списке Python
Продолжаем разговаривать про списки в Python и про то как с ними работать, я сторонник того что информация в небольших объемах воспринимается и усваивается намного лучше, поэтому и пишу небольшие статьи их можно даже назвать заметками. Сегодня поговорим о том как можно посчитать количество одинаковых элементов в списке. Делается это достаточно просто, в принципе как и все в языке программирования Python) Для решения этой задачи потребуется метод count(). Рассмотрим его применение на самом простом примере.
Поиск и подсчет количества одинаковых элементов в списке
И так допустим у нас есть какой-то список, и нам бы очень хотелось не только найти одинаковые элементы но и посчитать их количество.
numbers = [1, 2, 5, 55, 68, 88, 89,1, 2, 5, 55, 68, 88, 891, 2, 5, 55, 68, 88, 89,]
print(numbers)
Список состоит из цифр и выглядит следующим образом.

Для того чтобы посчитать количество одинаковых элементов нужно дописать всего одну строчку. Создать переменную в которую с помощью метода count будет помещаться количество найденных одинаковых элементов, для того чтобы увидеть результат выведем его на экран.
numbers = [1, 2, 5, 55, 68, 88, 89,1, 2, 5, 55, 68, 88, 891, 2, 5, 55, 68, 88, 89,] print(numbers) conunt = numbers.count(int('2')) print(conunt)
Проверим результат, как видим все правильно цифра «2» встречается в нашем списке «3» раза.

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