Найти - Пользователи
Полная версия: словарь
Начало » Python для новичков » словарь
1 2 3 4 5
stil
помогите пожалуйста с кодировкой,вот весь код:
 
#! /usr/bin/env python3
# -*- coding: utf-8 -*-

slovo = True
while slovo:

b = "абвгдеёжзийклмнопрстуфхцчшщЪыьэюя"
spisok = dict(zip(b, map(str, range(1, len(b)+1)) ))

slovo = raw_input("введите пожалуйста слово\n")

if slovo[0] in spisok:
filek = __import__("filek%s" % (spisok[slovo[0]]) )

mydic = filek.slovar
reload(filek)

if slovo in mydic:
print (mydic[slovo])
else:
print ("нет такого слова")
————————————————————-
я ввожу русскую букву: а
выдает ошибку:
Traceback (most recent call last):

filek = __import__(“filek%s” % (spisok[slovo]) )
Import Error: No module named filek55 #откуда берется 55 номер файла я не пойму,
#должен быть номер 1.
————————————————
линукс работает в кодировке utf-8
как мне исправить проблему???
stil
проблема решилась,оказывается нужно было дописать:
….(“введите пожалуйста слово\n”).decode('utf8')
———————————————-
а как можно разом весь словарь,его (ключ-значение) представить в юникоде?

slovar = {“а”:“прочное”,“б”:“хрупкое”,“в”:“горит”}
alexx11
Как-то всё здесь уныло. Словарь: slovar = {“металл”:“прочное”,“стекло”:“хрупкое”,“дерево”:“горит”}. Металл - “прочное” и стекло - “хрупкое”, речь видимо не о самих предметах и о их свойстве, качестве. Но при этом дерево … “горит”. По логике здесь даже лучше будет смотреться “деревянное”, хотя первое ассоциация о дереве что оно “зелёное”.

Или я понимаю конечно дерево зелёное звучит не так аццки как металл прочное. Ну хорошо, раз горит пусть горит, тогда это его состояние в текущий момент, и что же тогда такое металл - прочное а стекло хрупкое? Я уже 4 день внимательно читаю тему, и никак не могу понять что же такое в этом словаре?
stil
…Ёпрст, причем здесь содержание словаря? я писал от фонаря,там нет никакой логики,содержание будет конечно другим!
————-
в словаре будет содержаться 4 тыс слов, если вы знается как сделать хороший словарь с быстрым поиском то подскажите,буду рад.
и если не сложно,подскажите как можно разом весь словарь,его (ключ-значение) представить в юникоде?

s = {“ааа”:“что то”,“ббб”:“что то”,“ввв”:“что то”}
Isem
dict2 = { a.decode('utf8') : b.decode('utf8') for a, b in dict1.items() }
stil
Isem
болшое спасибо,но у меня выдает ошибку,указывая на цикл for. а код был такой:

 
slovar = {"а":"Ёмае","б":"не может быть","в":"как же так"}
dict2 = { a.decode('utf8') : c.decode('utf8') for a, c in slovar.items() } # тут важный момент,а можно ли
# представления в юникод
# сделать до загрузки slovar ?
Ed
Попробуйте вот это:
#! /usr/bin/env python3
# -*- coding: utf8 -*-

alphabet = "абвгдежзийклмнопрстуфхцчшщъыьэюя"

while True:
slovo = input("введите слово: ")
if not slovo:
break
if slovo[0] in alphabet:
filek = __import__("filek%s" % alphabet.index(slovo[0]))
print(filek.slovar.get(slovo, "нет такого слова"))
else:
print("ошибка: нерусское слово")
Но вообще ваша организация данных оставляет желать лучшего, мягко говоря.
stil
Спасибо большое,этот код интереснее.
>>Но вообще ваша организация данных оставляет желать лучшего, мягко говоря.
я честно сказать не знаю как лучше организовать,в данном примере сейчас происходит загрузка модуля относительно первой буквы,в котором все слова начинаются на одну букву.Вот думаю,может внутри модуля сделать несколько объектов словарей,где каждый будет отличаться уже по второй букве. в общем я не профессионал и не знаю как лучше,может что то посоветуете?
stil
примерно вот что я описывал,но код конечно не работает:
 
alphabet = u"абвгдежзийклмнопрстуфхцчшщъыьэюя"

while True:
slovo = raw_input("введите слово: ").decode('utf8')
if not slovo:
break
if slovo[0] in alphabet:
filek = __import__("filek%s" % int(1+ alphabet.index(slovo[0]) ))
x = filek.slovar%s % int(1+ alphabet.index(slovo[1]) ) #вот в этом месте как то надо перейти на нужный
# объект-словарь,но не знаю как подставить цифры


print(filek.x.get(slovo, "нет такого слова"))
else:
print("ошибка: нерусское слово")
——————————————————————–
в модуле содержится:
slovar1 = {u“ба”:“впопоп”,“}

slovar2 = {u”бб“:”длджлдж"}
Ed
Зачем вам эти импорты? Напишите все ваши слова и переводы в обычный текстовый файл по паре слово-перевод на строку. Читайте его в питоновый словарь, а потом с ним работайте. 4000 слов скажем по 100 байт на строку - это 500 килобайт. Все будет просто летать. Если все-таки планируется нечто большее - положите в sqlite, благо он вместе с питоном сейчас из коробки.
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