У меня есть список строк с некоторыми повторениями. например (не фактический список)
["hello", "goodbye", "hi", "how are you", "hi"]
Я хочу создать список целых чисел, где каждое целое число соответствует строке.
например для примера выше
[0, 1, 2, 3, 2]
, где 0 = "привет", 1 = "до свидания" и т. Д.
Я посмотрел пример здесь: Преобразование списка целых чисел в список предопределенных строк в Python
Я хочу сделать в основном то же самое, но наоборот, строки в целые числа. Эта часть не должна быть слишком сложной.
Однако они, кажется, просто создают словарь в своем коде так:
trans = {0: 'abc', 1: 'f', 2: 'z'}
Создание словаря самостоятельно - это хорошо, если вы знаете точное содержание вашего списка. Мой список строк очень длинный, и я не знаю, что это за строки, поскольку они поступают из ввода. Поэтому мне нужно сделать словарь из моего списка строк другим способом, например, циклом for.
Я не могу понять, как создать словарь, который будет сопоставлять строки в моем списке с числами. Я посмотрел, как создать словарь со списком, но я не мог понять, как он работает с дубликатами.
Другими словами, я хотел бы знать, как просмотреть список, подобный моему списку строк выше, и создать словарь, подобный:
{"hello": 0, "goodbye": 1, "hi": 2, "how are you": 3}
РЕДАКТИРОВАТЬ: у меня было много ответов, спасибо всем за вашу помощь. Что меня сейчас смущает, так это разные способы сделать это Было много предложений, используя enumerate()
, set()
и другие функции. Был также один ответ (@ChristianIacobs), который сделал это очень просто с помощью цикла for. Что мне интересно, так это то, есть ли причина использовать один из чуть менее простых ответов? Например, они быстрее или в некоторых ситуациях они работают только так?