stil
Янв. 23, 2011 12:13:45
помогите решить задачу.я создал словарь и нужно провести поиск по ключу,но у меня не получается.
# -*- 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 “нет такого слова”
ivadim
Янв. 23, 2011 12:43:17
raw_input возвращат строку, а у тебя ключи числа. Нужно привести к int(slovo)
P.s has_key лишнее, и это не похоже на синтаксис python3 указанного у вас в заголовки
slovo = int(slovo)
if slovo in slovar:
print(“yes”)
else:
print(“no”)
stil
Янв. 23, 2011 16:46:27
спасибо работает,а как сделать чтоб выдавалось значение ключа?я немного переделал код.
# -*- 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 (“нет такого слова”)
Isem
Янв. 23, 2011 17:19:21
ну или
for slovo, kakoe in slovar.items():
bla-bla-bla
ta
Янв. 23, 2011 17:36:40
stilstil
# -*- coding: utf-8 -*-
#! /usr/bin/env python3
путь до питона надо указывать в 1й строке.
кодировку файла во 2-й.
у вас код на питон2 или на питон3?
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
stil
Янв. 23, 2011 17:56:23
я учу по книжке для второго питона,поэтому не знаю нюансы для 3 питона.
а какой поиск по ключу будет происходить быстрее?(если много слов):
1.if d1.has_key(1):
или
2.if slovo in slovar:
————————–
а это дает не тот результат
for slovo, kakoe in slovar.items():
Isem
Янв. 23, 2011 18:07:43
if slovo in slovar настолько быстра, насколько это возможно в общем случае.
stil
Янв. 23, 2011 18:36:48
глупый вопрос,но я не знаю,а если будет большое количество (слов-значений),вот эту сточку
slovar = {“металл”:“прочное”,“стекло”:“хрупкое”,“дерево”:“горит”}
не будешь же в нее все вписывать,как то ведь по другому организуется?
Antik
Янв. 23, 2011 20:40:16
Если будет много слов, тогда используй iteritems()
for slovo, kakoe in slovar.iteritems():
bla-bla-bla
sp3
Янв. 23, 2011 22:25:34
slovar = {"металл":"прочное","стекло":"хрупкое","дерево":"горит"}
slovar['a'] = 'bbbb'
slovar['b'] = 'cccc'
import pprint
pprint.pprint(slovar)