Форум сайта python.su
помогите решить задачу.я создал словарь и нужно провести поиск по ключу,но у меня не получается.
# -*- coding: utf-8 -*-
#! /usr/bin/env python3
slovar = {1:“прочное”, 2:“хрупкое”, 3:“горит”}
slovo = raw_input(“введите пожалуйса 1 или 2 или 3”)
if slovo in slovar.has_key(slovo) # здесь надо проверить есть ли слово по ключу,но выдает ошибку
print “yes”
else:
print “нет такого слова”
Офлайн
raw_input возвращат строку, а у тебя ключи числа. Нужно привести к int(slovo)
P.s has_key лишнее, и это не похоже на синтаксис python3 указанного у вас в заголовки
slovo = int(slovo)
if slovo in slovar:
print(“yes”)
else:
print(“no”)
Офлайн
спасибо работает,а как сделать чтоб выдавалось значение ключа?я немного переделал код.
# -*- coding: utf-8 -*-
#! /usr/bin/env python3
slovo = True
while slovo:
slovar = {“металл”:“прочное”,“стекло”:“хрупкое”,“дерево”:“горит”}
slovo = raw_input(“введите пожалуйса слово”)
if slovo in slovar:
print (slovar.values(slovo)) # вот тут ошибка
else:
print (“нет такого слова”)
Отредактировано (Янв. 23, 2011 16:52:25)
Офлайн
ну или
for slovo, kakoe in slovar.items():
bla-bla-bla
Отредактировано (Янв. 23, 2011 17:23:50)
Офлайн
stil
stilпуть до питона надо указывать в 1й строке.
# -*- coding: utf-8 -*-
#! /usr/bin/env python3
stil
slovo = raw_input(“введите пожалуйса слово”)
stil
print (“нет такого слова”)
stil
а как сделать чтоб выдавалось значение ключа?
>>> d1 = {1:"one", 2:"two"}
>>> if d1.has_key(1):
... print "Key: 1, Val: %s" % (d1[1])
... else:
... print "n"
...
Key: 1, Val: one
Офлайн
я учу по книжке для второго питона,поэтому не знаю нюансы для 3 питона.
а какой поиск по ключу будет происходить быстрее?(если много слов):
1.if d1.has_key(1):
или
2.if slovo in slovar:
————————–
а это дает не тот результат
for slovo, kakoe in slovar.items():
Офлайн
if slovo in slovar настолько быстра, насколько это возможно в общем случае.
Офлайн
глупый вопрос,но я не знаю,а если будет большое количество (слов-значений),вот эту сточку
slovar = {“металл”:“прочное”,“стекло”:“хрупкое”,“дерево”:“горит”}
не будешь же в нее все вписывать,как то ведь по другому организуется?
Офлайн
Если будет много слов, тогда используй iteritems()
for slovo, kakoe in slovar.iteritems():
bla-bla-bla
Офлайн
slovar = {"металл":"прочное","стекло":"хрупкое","дерево":"горит"}
slovar['a'] = 'bbbb'
slovar['b'] = 'cccc'
import pprint
pprint.pprint(slovar)
Офлайн