gpt4 book ai didi

python - 字典将列表中的字符串映射到 Python 中的数字

转载 作者:行者123 更新时间:2023-12-04 12:42:39 31 4
gpt4 key购买 nike

我有一些重复的字符串列表。例如(不是实际列表)

["hello", "goodbye", "hi", "how are you", "hi"]

我想创建一个整数列表,其中每个整数对应一个字符串。
例如对于上面的例子
[0, 1, 2, 3, 2]

其中 0 = “你好”,1 = “再见”等。

我在这里查看了示例: Convert a list of integer to a list of predefined strings in Python

我想做基本相同的事情,但反过来,字符串到整数。那部分应该不会太难。

然而,他们似乎只是在他们的代码中创建字典,如下所示:
trans = {0: 'abc', 1: 'f', 2: 'z'}

当您知道列表的确切内容时,自己创建字典就可以了。我的字符串列表非常长,我不知道字符串是什么,因为它来自输入。所以我需要以其他方式从我的字符串列表中制作字典,比如 for 循环。

我不知道如何制作将列表中的字符串映射到数字的字典。我查找了如何制作带有列表推导式的字典,但我无法弄清楚它是如何处理重复项的。

换句话说,我想知道如何遍历像上面的字符串列表这样的列表并创建一个字典,例如:
{"hello": 0, "goodbye": 1, "hi": 2, "how are you": 3}

编辑:我有很多答案,谢谢大家的帮助。我现在困惑的是这样做的所有不同方式。已经有很多建议了,使用 enumerate() , set()和其他功能。还有一个答案(@ChristianIacobs)只用一个 for 循环就可以非常简单地做到这一点。我想知道的是是否有任何理由使用稍微不那么简单的答案之一?例如,它们是否更快,或者在某些情况下它们是唯一有效的方法?

最佳答案

要从列表中创建字典,您首先需要删除重复值。使用集合来实现:

my_list = ["hello", "goodbye", "hi", "how are you", "hi"]
unique_list = list(set(my_list))

['hi', 'hello', 'goodbye', 'how are you']

现在您可以通过使用一系列数字压缩 unique_list 来创建您的字典:
my_dict = dict(zip(unique_list, range(len(unique_list))))

{'hi': 0, 'hello': 1, 'goodbye': 2, 'how are you': 3}

关于python - 字典将列表中的字符串映射到 Python 中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56475166/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com