Если я правильно понял, то программа из этого видео формирует подсказку типа "имя"+"цифра" и просто выводит ее, но не добавляет эту подсказку в базу данных. Да, мы увеличиваем value у основного ключа, но само добавление подсказки в базу не происходит, а по условию оно требуется. При этом на codeforces этот момент в условии даже курсивом выделен.
@@egoroffchannel как нет? в данной задаче под БД понимается словарь, содержащий перечень зарегистрированных имен. Мы же заносим в него новое имя и выдаем пользователю ответ "OK".
@@dboriss77 да, кстати, должна подсказка добаляться в базу данных. Я на степике так и сделал, но потом посмотрел решения других людей и решения Артема и тоже заметил, что решение не сходится с условием
Все точно также делал) проблема была только в этих цифрах, которые надо было выводить после повторно введенного слова, никак не мог сформулировать код) хотя на пальцах крутился ответ))) Одним словом! Огромное спасибо за разъяснения!
n = int(input()) data = {} count = 1 b = [] for i in range(n): s = input() if s in data: b.append(s) count = b.count(s) s = str(s) + str(count) data.setdefault(s,s) else: data.setdefault(s, 'OK') for i in data.values(): print(i) Вариант моего решения, немного сложнее из-за добавления списков, но принцип тот же
Прошу прощения, но по моему задача решена не верно, т.к. если мы введем сначала ttt, затем снова введем ttt, то в нашу базу должно занестись еще 1 логин: ttt1. Иначе если мы введем 3-й раз ttt1, то программа посчитает его новым и два раза выведет ttt1.
Привет, можешь пожалуйста разобрать эту задачу из пункта 7.3: "Ваша задача написать функция find_duplicate, которая принимает один аргумент - список чисел. Функция должна возвращать список из дублей, каждый дубль нужно брать только один раз в том порядке, в котором они встречаются в исходном списке. Под дублем будем подразумевать число, которое присутствовало в списке несколько раз."
что-то вообще ничего не понятно. вижу печать в ф строке, но добавления в словарь не вижу. а если оно и есть, то тогда зачем метод setdefault который проверяет и если нет ключа добавляет пару ключ значение.. в общем, лично по мне решение не логичное, или у меня не правильная логика. и то и то вполне допустимо, однако такое решение меня скорее запутало, чем помогло. В любом случае за курс спасибо. Актуальный, хорошая подача материала. А решений может быть масса и каждый выбирает свое.
Если я правильно понял, то программа из этого видео формирует подсказку типа "имя"+"цифра" и просто выводит ее, но не добавляет эту подсказку в базу данных. Да, мы увеличиваем value у основного ключа, но само добавление подсказки в базу не происходит, а по условию оно требуется. При этом на codeforces этот момент в условии даже курсивом выделен.
ну у нас и БД то нет)
@@egoroffchannel как нет? в данной задаче под БД понимается словарь, содержащий перечень зарегистрированных имен. Мы же заносим в него новое имя и выдаем пользователю ответ "OK".
@@dboriss77 можешь просто добавить строчку print(login+str(logins[login]-1))(это если login in logins)
@@dboriss77 да, кстати, должна подсказка добаляться в базу данных. Я на степике так и сделал, но потом посмотрел решения других людей и решения Артема и тоже заметил, что решение не сходится с условием
Все точно также делал) проблема была только в этих цифрах, которые надо было выводить после повторно введенного слова, никак не мог сформулировать код) хотя на пальцах крутился ответ))) Одним словом! Огромное спасибо за разъяснения!
Спасибо, Артем, за доступное и понятное объяснение!
Спасибо вам Артём! У вас дар объяснять!
Спасибо, Артем! Как всегда здорово
n = int(input())
data = {}
count = 1
b = []
for i in range(n):
s = input()
if s in data:
b.append(s)
count = b.count(s)
s = str(s) + str(count)
data.setdefault(s,s)
else:
data.setdefault(s, 'OK')
for i in data.values():
print(i)
Вариант моего решения, немного сложнее из-за добавления списков, но принцип тот же
спасибо, как оказывается, все очень просто...
От души братан! Просто лев!
Прошу прощения, но по моему задача решена не верно, т.к. если мы введем сначала ttt, затем снова введем ttt, то в нашу базу должно занестись еще 1 логин: ttt1. Иначе если мы введем 3-й раз ttt1, то программа посчитает его новым и два раза выведет ttt1.
Каждый запрос представляет собой непустую строку длиной не более 32 символов, состоящую только из строчных букв латинского алфавита.
Привет, можешь пожалуйста разобрать эту задачу из пункта 7.3:
"Ваша задача написать функция find_duplicate, которая принимает один аргумент - список чисел. Функция должна возвращать список из дублей, каждый дубль нужно брать только один раз в том порядке, в котором они встречаются в исходном списке. Под дублем будем подразумевать число, которое присутствовало в списке несколько раз."
ruclips.net/video/gqTCPE64AKc/видео.html
@@egoroffchannel спасибо большое)
Спасибо:3
что-то вообще ничего не понятно. вижу печать в ф строке, но добавления в словарь не вижу. а если оно и есть, то тогда зачем метод setdefault который проверяет и если нет ключа добавляет пару ключ значение..
в общем, лично по мне решение не логичное, или у меня не правильная логика. и то и то вполне допустимо, однако такое решение меня скорее запутало, чем помогло. В любом случае за курс спасибо. Актуальный, хорошая подача материала. А решений может быть масса и каждый выбирает свое.