Найти - Пользователи
Полная версия: Словарик
Начало » Python для новичков » Словарик
1 2
Murderdoll666
Здравствуйте. Задали сделать словарик:
Пользователь запрашивает слово на англ и программа выдаёт ему перевод.
Сам словарь в текстовом файле, где слова разделены на 2 стобца: англ и русский. Слова разделены “tab”
Задача: разделить слова в 2 списка, с этим я справилась:(вроде бы)
#Slovar
file=open("dictionary.txt","r")
sa=[]
ta=[]

while True:
line=file.readline()
if line=="":
break
paar=line.split('\t')
sa.append(paar[0])
ta.append(paar[1])
Дальше начинаеться самое сложное для меня:
Пользователь вводит слово.
Как сделать так, что бы он его нашел в списке sa и вернул его значение из списка ta
Заранее спасибо
o7412369815963
для этого лучше использовать словарик
d = {}
d['cat']='котяра'
#d[paar[0]] = paar[1]
print d[ raw_input() ]
zheromo
from string import split
dictionary = dict(map(split,open("dictionary.txt").readlines()))

perveod = dictionary['slovo']
или

dictionary = dict(map(lambda s:s.split(), open("dictionary.txt").readlines()))

perveod = dictionary['slovo']
zheromo
или со структурой как у вас

perevod = ta[sa.index('slovo')]
Murderdoll666
Мне нужно именно так, как я писала. Я знаю, что он так ищет, но у меня не получается
zheromo
что именно не получается?

попробуйте так

slovo = raw_input('>')
if slovo in sa:
print 'perevod:', ta[sa.index(slovo)]
else:
print 'perevoda net'
Murderdoll666
zheromo
что именно не получается?

попробуйте так

slovo = raw_input('>')
if slovo in sa:
print 'perevod:', ta[sa.index(slovo)]
else:
print 'perevoda net'
Да так работает. Я просто имела ввиду, что мы на практике делали задачу, она искала число и выдавало его значение ( так же из файла, делилось на два столбца итд) Я пыталась повторить этот способ и в этом случае, но у меня не получилось.
Ed
Кстати, можно искать слово в двух списках, тогда получите два словаря сразу практически забесплатно: при вводе английского слова программа выведет перевод на русский и наоборот.
Murderdoll666
Ed А как?
guranvir
возможно Вам поможет функция zip.
Например:
russlov=['кот','дом'] 
engslov=['cat','house']
dic=zip(russlov,engslov)
for i in dic:
print i
В результате вы получите список кортежей, где первыйц элемент кортежа из списка russlov,а второй из engslov
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