Получение слова из чисел с помощью комбинаций - PullRequest
1 голос
/ 21 июня 2020

Приведу пример: у меня есть слово lol, которое может быть 1o1. число «1» можно использовать как l, i, j. у меня есть список слов в черном списке blacklisted = ['lol']. Я хочу изменить цифры «1» в 1o1, чтобы проверить, соответствует ли это lol. Пример: result = ['ioi', 'joj', 'lol', 'joi'] ...

есть ли способ сделать это?

Ответы [ 2 ]

0 голосов
/ 21 июня 2020

Используйте словарь, чтобы сохранить эти похожие значения. Например, вот функция для реализации этой функциональности:

def check(string, blacklisted):
    translate_dict = {'1': ['l', 'i', 'j']} # etc. for similar corresponding values
    possible_strings = []
    for num, letter in translate_dict.items(): # this loop replaces all numbers with letters
        for i in letter:
            possible_strings.append(string.replace(num, i)) 
    for string in possible_strings:
        if string in blacklisted: # checks whether the string is in blacklisted
            return False
    return True
0 голосов
/ 21 июня 2020
blacklisted = ['lol']
check = ['1o1']
substitute = ['l', 'i', 'j']

result = [ check[0].replace('1', char) for char in substitute ]

print(result)

Очевидно, вы можете обобщить приведенный выше фрагмент для значений, отличных от «1», и использовать его в al oop, который проверяет много слов.

...