LINUX.ORG.RU

Как проверить: является ли строка частью ключа словаря в Python

 


0

1

Добрый день!

Пользователь x3al направил на правильный путь написания скрипта замены английскийских субтитров на русские. Переделанный скрипт примерно такой:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# Создаем словать
en2rus = {}
# Открываем файл c переводами
with open("txt") as f:
    # Если открывается
    try:
        # Обрабаываем в цикле
        while True:
            # Первая строка
            FirstLine = next(f)
# Вторая строка
            SecondLine = next(f)
# Заносим первую строку как ключ в словарь, а вторую строку как значение в
# словарь
            # можно заодно любую длину сюда закинуть
            en2rus[FirstLine] = SecondLine
# Обрабатываем ошибку
    except StopIteration:
        pass  # файл кончился

print(en2rus, "- Словарь")

with open("srt") as b, open("srt-out", "w") as out:
    for SrtLine in b:
        print(SrtLine)
        print(dict.keys(en2rus))
        if SrtLine in list(en2rus):
            print(SrtLine, "- SrtLine")

Собственно английское предложение заносится как ключ в словарь, а русский перевод заносится как значание в словарь. И теперь надо проверить совпадает/входит ли пара-тройка английских слов в ключ словаря.

Пробовал dict.keys и list(dict). Не получается. Как лучше реализовать?



Последнее исправление: chemtech (всего исправлений: 1)

Ответ на: комментарий от proud_anon

Извиняюсь. Забыл додавить вывод:

 to you by Digium The Asterisk company.
 - NewKey
Asterisk от Digium, компании создавшей Asterisk.
 - NewValue

NewKey - новый ключ, NewValue - новое значение ключа в словаре.

chemtech
() автор топика
Ответ на: комментарий от buratino

Добрый день. Мне помогли с решением задачи. Написали скрипт, но зашифровали его - чтобы я разобрался. Я добавил свои мысли по коду. И залил в интернет. Спросил в той теме где мне помогли, но ответа нет. Можете помочь написать где я не прав/не правильно описал. Как дальше понять/расшифровать код? Спасибо.

Код с комментариями: https://bpaste.net/show/39a35d52a669

chemtech
() автор топика
Ответ на: комментарий от chemtech

я вообще ничего не понимаю в этом чужом коде

вместо двух вопросиков, очевидно, должно быть число - не использовал textwrap, поэтому сходу не скажу

buratino ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.