Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 14, 2025 11:29:28

GenOxyGen
Зарегистрирован: 2025-01-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как быть в ситуации к примеру миллиардов записей в словаре?

Всем привет!
Изучаю язык программирования Python и столкнулся с таким вопросом.
К примеру ниже листинг показывает словарь таблицу - взято с книги Марка Лутса.
Получается вот что - когда мы пишем называние языка программирования, то нам выдает Автора языка, и список c помощью цикла for, и получается. что присваиваем к переменной language вводимое называние и ОК, а что если мы ввели неправильно название, то выдать строку else: print('24 : ENTER the : Python, C++, ASM or Pascal') - но у меня вопрос!!!!
А что если записей в переменной table три миллиарда , получается, что они будут прочитаны/присвоены напрасно при случае неправильного ввода и т/п - Как сделать так, что бы переменная table не участвовала при неправильном вводе, иначе программа так и всяк записывает данные в переменную, хоть она и не участвует при не правильном вводе? (точнее участвует - но в этом и вся трабла)

 language = input()
table = {
	'Python':'Guido van Rosuum',
	'C++':'Bjarne Stroustrup',
	'ASM':'Randall Hyde',
	'Pascal':'Niklaus Emil Wirth'
}
if language in table: 
	print('23 :',table[language])
	for lang in table: # table.keys()
		print(lang, table[lang])
else: print('24 : ENTER the : Python, C++, ASM or Pascal')

Повторюсь! Что если записей 3 - 4 миллиарда и пользователь ввели неправильное название (ключ) , то получается, что переменная table присвоит все 3 -4 миллиарда записей в программе напрасно - Как быть?

Отредактировано GenOxyGen (Янв. 14, 2025 15:16:17)

Офлайн

#2 Янв. 14, 2025 11:52:22

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1370
Репутация: +  121  -
Профиль   Отправить e-mail  

Как быть в ситуации к примеру миллиардов записей в словаре?

GenOxyGen
переменная table присвоит все 3 -4 миллиарда записей в программе напрасно
что в твоем понятии напрасно?

Офлайн

#3 Янв. 14, 2025 11:58:21

GenOxyGen
Зарегистрирован: 2025-01-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как быть в ситуации к примеру миллиардов записей в словаре?

xam1816
Если пользователь введет неправильный ключ, то программа все-равно присвоит к переменной table все 3-4 миллиарда записей словаря для проверки на вхождение егошнего значения в словаре и получается, что программа для этого присвоит все 3-4 миллиарда записей напрасно - есть выход?

Отредактировано GenOxyGen (Янв. 14, 2025 11:59:18)

Офлайн

#4 Янв. 14, 2025 12:07:39

GenOxyGen
Зарегистрирован: 2025-01-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как быть в ситуации к примеру миллиардов записей в словаре?

xam1816
что в твоем понятии напрасно?

3 - 4 миллиарда записей словаря в память ПК - расточительство наперсно, как сделать так, что бы, программа включала переменную table только в том случае. когда вводимы юзером ключ верный, иначе все 3 -4 млрд записей получается нагрузят память ПК в этом нет необходимости!

Офлайн

#5 Янв. 14, 2025 12:12:33

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1370
Репутация: +  121  -
Профиль   Отправить e-mail  

Как быть в ситуации к примеру миллиардов записей в словаре?

GenOxyGen
Если пользователь введет неправильный ключ, то программа все-равно присвоит к переменной table все 3-4 миллиарда записей словаря
ну вот ввел я ключ, как я пойму, тот правильный ключ или нет? соответственно мне нужно поискать его в таблице. Так таблица нужна в любом случае для этого.Или хочешь сказать, что нужно его найти без таблицы)))т.е искать этот ключ нигде

Офлайн

#6 Янв. 14, 2025 12:19:08

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1370
Репутация: +  121  -
Профиль   Отправить e-mail  

Как быть в ситуации к примеру миллиардов записей в словаре?

GenOxyGen
3 - 4 миллиарда записей словаря в память ПК - расточительство наперсно
для это придумана база данных, которая хранит данные, сжимает, осуществляет поиск и прочее

Офлайн

#7 Янв. 14, 2025 12:37:00

GenOxyGen
Зарегистрирован: 2025-01-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как быть в ситуации к примеру миллиардов записей в словаре?

xam1816
для это придумана база данных, которая хранит данные, сжимает, осуществляет поиск и прочее
Начинаю понимать, да я только начал изучать, поэтому такие вопросы появляются, хотя в этом логика есть на счет 3-4 млрд , предполагаю, что в мире системы так и работают переберая значения на стороне супер компьютеров-процессором и т.д)) или системы оптимизации кода, и все же для Пкшнего приложения это минус, если речь идет даже о 10000 записей, по-любому прога притормозит в этом случает (наверное) не уверен От души за ответы!

Офлайн

#8 Янв. 14, 2025 12:44:40

GenOxyGen
Зарегистрирован: 2025-01-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как быть в ситуации к примеру миллиардов записей в словаре?

xam1816
ну вот ввел я ключ, как я пойму, тот правильный ключ или нет? соответственно мне нужно поискать его в таблице. Так таблица нужна в любом случае для этого.Или хочешь сказать, что нужно его найти без таблицы)))т.е искать этот ключ нигде

у меня пришла идея- не знаю существует такая тема или нет, но (не ни искать ни где) а подставлять (подсказки) как вводишь в гугл например Gis - а он тебе пишет подсказывает Gismeteo и так далее, то есть на уровне шаблонов под вводимые значения пользователем, типа как тут пишет первую букву P или Pyt.. а прога на уровне шаблонов подсказывает Python или все те варианты, что есть в коллекции на букву Py.., короче пошёл дальше изучать! Спасибо за ответы!

ps: и всеравно проге придется кавырнуть все записи на буквы Py…

Отредактировано GenOxyGen (Янв. 14, 2025 12:49:49)

Офлайн

#9 Янв. 14, 2025 13:01:30

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1370
Репутация: +  121  -
Профиль   Отправить e-mail  

Как быть в ситуации к примеру миллиардов записей в словаре?

GenOxyGen
если речь идет даже о 10000 записей, по-любому прога притормозит в этом
я бы тебе посоветовал на начальном этапе не обращать на это внимание, иначе из-за стараний написать сразу идеальный код, ты ничего так и не напишешь. Самое лучшее в обучении, когда ты именно нарвешься на ошибку или что медленно работает или забирает много памяти.Когда сам исправляешь эти ошибки, разбираясь почему они возникают, тогда ты и становишься специалистом. Еще раз повторю, только исправление ошибок своих, да и чужих в принципе, научит тебя программировать. А чтобы ошибиться, нужно сначала ошибиться, т.е создать что-то неидеальное, а потом понять что в нем не так. Обоснованно зная как не нужно делать, в реальном проекте будет больше шансов сделать правильно

Офлайн

#10 Янв. 14, 2025 13:06:15

GenOxyGen
Зарегистрирован: 2025-01-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как быть в ситуации к примеру миллиардов записей в словаре?

xam1816
я бы тебе посоветовал на начальном этапе не обращать на это внимание, иначе из-за стараний написать сразу идеальный код, ты ничего так и не напишешь. Самое лучшее в обучении, когда ты именно нарвешься на ошибку или что медленно работает или забирает много памяти.Когда сам исправляешь эти ошибки, разбираясь почему они возникают, тогда ты и становишься специалистом. Еще раз повторю, только исправление ошибок своих, да и чужих в принципе, научит тебя программировать. А чтобы ошибиться, нужно сначала ошибиться, т.е создать что-то неидеальное, а потом понять что в нем не так. Обоснованно зная как не нужно делать, в реальном проекте будет больше шансов сделать правильно

Спасибо Друг!!!
Так и буду делать, просто вот возник вопрос решил найти сообщество по питону и теперь я с вами!
От души!
Я еще приду

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version