gpt4 book ai didi

python 高尔夫 : what's the most concise way of turning this list of lists into a dictionary:

转载 作者:太空宇宙 更新时间:2023-11-03 12:11:47 26 4
gpt4 key购买 nike

我有一个看起来像这样的列表列表:

[['Tom', 'Dick'], ['Harry', 'John', 'Mike'], ['Bob']]

我想把它变成一个字典,其中每个键都是一个名称,每个值都是一个数字,对应于它的子列表在列表中的位置:

{'Tom': 0, 'Dick': 0, 'Harry': 1, 'John': 1, 'Mike': 1, 'Bob': 2}

我尝试了各种列表推导式,但无法让它正确处理嵌套列表。我可以使用嵌套循环,如下所示:

names = [['Tom', 'Dick'], ['Harry', 'John', 'Mike'], ['Bob']]
names_dict = {}
for i, name_sublist in enumerate(names):
for name in name_sublist:
names_dict[name] = i

但我怀疑有一种更短、更优雅的方法。

最佳答案

与 MizardX 相同的想法,但在 Python 3.0 中使用 dict comprehensions: 更小更漂亮

>>> names = [['Tom', 'Dick'], ['Harry', 'John', 'Mike'], ['Bob']]
>>> names_dict = {name:index for index, lst in enumerate(names) for name in lst}
>>> names_dict
{'Tom': 0, 'Mike': 1, 'Dick': 0, 'Harry': 1, 'Bob': 2, 'John': 1}

关于 python 高尔夫 : what's the most concise way of turning this list of lists into a dictionary:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/534608/

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