如何从一个列表中创建一个字典,其中键是索引,值是列表中的实际元素?

2024-09-29 19:20:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要初始化一个字典来启动我在列表中的元素的聚类模型,当我进行聚类时,我将按元素的索引合并元素,然后我需要显示我在列表中的字符串。所以我想做一个字典,每次我对值进行聚类时都合并它们。你知道吗

假设我有以下清单:

fileList = ["doc1", "doc2", "doc3", "doc4", "doc5"]

我的想法是用它们创建一个字典,索引作为键,字符串作为值:

fileDict = {0: ["doc1"], 1: ["doc2"], 2: ["doc3"], 3: ["doc4"], 4: ["doc5"]}

然后在聚类过程之后,我可以更改键的名称并打印:

clustersDict = {1: ["doc1", "doc2", "doc3"], 2: ["doc4", "doc5"]}

现在,我尝试的是:

 clustersDict = dict.fromkeys([i for i in range(len(listFiles)), name for name in listFiles]) 

问题是,它会将整个文件列表附加到每个键上,而不仅仅是一个,我尝试了索引I,但它显然表示它没有定义,而且我不知道如何继续,因为我对Python还很陌生。你知道吗

谢谢你!你知道吗


Tags: 字符串namein元素列表for字典doc1
3条回答

只需使用enumerate

fileList = ["doc1", "doc2", "doc3", "doc4", "doc5"]

result = dict(enumerate([f] for f in fileList))

print(result)

输出

{0: ['doc1'], 1: ['doc2'], 2: ['doc3'], 3: ['doc4'], 4: ['doc5']}
fileList = ["doc1", "doc2", "doc3", "doc4", "doc5"]
{v:[k] for v, k in enumerate(fileList)}

结果:

{0: ['doc1'], 1: ['doc2'], 2: ['doc3'], 3: ['doc4'], 4: ['doc5']}

可以将函数^{}lambda函数一起使用:

dict(enumerate(map(lambda x: [x], fileList)))

相关问题 更多 >

    热门问题