我有一个字符串列表,其中一些重复。例如(不是实际列表)
["hello", "goodbye", "hi", "how are you", "hi"]
Run Code Online (Sandbox Code Playgroud)
我想创建一个整数列表,其中每个整数对应一个字符串。例如上面的例子
[0, 1, 2, 3, 2]
Run Code Online (Sandbox Code Playgroud)
其中 0 =“你好”,1 =“再见”等。
我在这里查看了示例:将整数列表转换为 Python 中预定义字符串的列表
我想做基本上相同的事情,但相反,字符串到整数。这部分应该不会太难。
然而,他们似乎只是在代码中创建字典,如下所示:
trans = {0: 'abc', 1: 'f', 2: 'z'}
Run Code Online (Sandbox Code Playgroud)
当您知道列表的确切内容时,自己创建字典就可以了。我的字符串列表非常长,我不知道这些字符串是什么,因为它来自输入。所以我需要以其他方式从我的字符串列表中创建字典,比如 for 循环。
我不知道如何制作一个字典,将列表中的字符串映射到数字。我查找了如何制作带有列表理解的字典,但我不知道它如何处理重复项。
换句话说,我想知道如何浏览像上面的字符串列表这样的列表并创建一个字典,例如:
{"hello": 0, "goodbye": 1, "hi": 2, "how are you": 3}
Run Code Online (Sandbox Code Playgroud)
编辑:我有很多答案,感谢大家的帮助。我现在感到困惑的是执行此操作的所有不同方法。已经有很多建议,使用enumerate(),set()以及其他功能。还有一个答案(@ChristianIacobs)只需一个 for 循环就可以非常简单地完成它。我想知道是否有任何理由使用稍微不那么简单的答案之一?例如,它们是否更快,或者在某些情况下它们是唯一有效的方法?