Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 23, 2011 12:13:45

stil
От:
Зарегистрирован: 2010-07-28
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

словарь

помогите решить задачу.я создал словарь и нужно провести поиск по ключу,но у меня не получается.
# -*- 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 “нет такого слова”



Офлайн

#2 Янв. 23, 2011 12:43:17

ivadim
От:
Зарегистрирован: 2010-08-17
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

словарь

raw_input возвращат строку, а у тебя ключи числа. Нужно привести к int(slovo)

P.s has_key лишнее, и это не похоже на синтаксис python3 указанного у вас в заголовки
slovo = int(slovo)
if slovo in slovar:
print(“yes”)
else:
print(“no”)



Офлайн

#3 Янв. 23, 2011 16:46:27

stil
От:
Зарегистрирован: 2010-07-28
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

словарь

спасибо работает,а как сделать чтоб выдавалось значение ключа?я немного переделал код.

# -*- 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)

Офлайн

#4 Янв. 23, 2011 17:19:21

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

словарь


ну или

for slovo, kakoe in slovar.items():
bla-bla-bla



Отредактировано (Янв. 23, 2011 17:23:50)

Офлайн

#5 Янв. 23, 2011 17:36:40

ta
Зарегистрирован: 2009-12-15
Сообщения: 90
Репутация: +  0  -
Профиль   Отправить e-mail  

словарь

stil

stil
# -*- 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

Офлайн

#6 Янв. 23, 2011 17:56:23

stil
От:
Зарегистрирован: 2010-07-28
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

словарь

я учу по книжке для второго питона,поэтому не знаю нюансы для 3 питона.
а какой поиск по ключу будет происходить быстрее?(если много слов):
1.if d1.has_key(1):
или
2.if slovo in slovar:
————————–
а это дает не тот результат
for slovo, kakoe in slovar.items():



Офлайн

#7 Янв. 23, 2011 18:07:43

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

словарь

if slovo in slovar настолько быстра, насколько это возможно в общем случае.



Офлайн

#8 Янв. 23, 2011 18:36:48

stil
От:
Зарегистрирован: 2010-07-28
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

словарь

глупый вопрос,но я не знаю,а если будет большое количество (слов-значений),вот эту сточку
slovar = {“металл”:“прочное”,“стекло”:“хрупкое”,“дерево”:“горит”}
не будешь же в нее все вписывать,как то ведь по другому организуется?



Офлайн

#9 Янв. 23, 2011 20:40:16

Antik
От:
Зарегистрирован: 2011-01-18
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

словарь

Если будет много слов, тогда используй iteritems()

for slovo, kakoe in slovar.iteritems():
bla-bla-bla



Офлайн

#10 Янв. 23, 2011 22:25:34

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

словарь

slovar = {"металл":"прочное","стекло":"хрупкое","дерево":"горит"}
slovar['a'] = 'bbbb'
slovar['b'] = 'cccc'
import pprint
pprint.pprint(slovar)



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version