Найти - Пользователи
Полная версия: Как быть в ситуации к примеру миллиардов записей в словаре?
Начало » Python для новичков » Как быть в ситуации к примеру миллиардов записей в словаре?
1 2
GenOxyGen
Всем привет!
Изучаю язык программирования 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 миллиарда записей в программе напрасно - Как быть?
xam1816
GenOxyGen
переменная table присвоит все 3 -4 миллиарда записей в программе напрасно
что в твоем понятии напрасно?
GenOxyGen
xam1816
Если пользователь введет неправильный ключ, то программа все-равно присвоит к переменной table все 3-4 миллиарда записей словаря для проверки на вхождение егошнего значения в словаре и получается, что программа для этого присвоит все 3-4 миллиарда записей напрасно - есть выход?
GenOxyGen
xam1816
что в твоем понятии напрасно?

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

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

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

Спасибо Друг!!!
Так и буду делать, просто вот возник вопрос решил найти сообщество по питону и теперь я с вами!
От души!
Я еще приду
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB