gpt4 book ai didi

python - 如何从可能为空值的列表列表中生成字典?

转载 作者:行者123 更新时间:2023-11-28 20:57:03 25 4
gpt4 key购买 nike

我有列表列表:dep = [['ArithmeticError'], ['ZeroDivisionError', 'ArithmeticError'], ['OSError'], ['FileNotFoundError', 'OSError']] 我需要将其转换为字典,如:dep = {'ArithmeticError': None, 'ZeroDivisionError': 'ArithmeticError', 'OSError': None, 'FileNotFoundError': 'OSError'}。也可以将字符串列表作为带有一些错误名称的值。我看到了 dict() 的变体,但它对我不起作用,因为空值是可能的。我尝试使用 dep = dict(dep),但出现错误:“字典更新序列元素 #0 的长度为 1;需要 2”。

最佳答案

您可以将 None 添加到每个子列表的末尾,然后取前两项。

dep = dict((sublist + [None])[:2] for sublist in dep)

例如使用 pprint打印得很好

>>> dep = [['ArithmeticError'],
... ['ZeroDivisionError', 'ArithmeticError'],
... ['OSError'],
... ['FileNotFoundError', 'OSError']]

>>> from pprint import pprint

>>> result = dict((sublist + [None])[:2] for sublist in dep)

>>> pprint(result)
{'ArithmeticError': None,
'FileNotFoundError': 'OSError',
'OSError': None,
'ZeroDivisionError': 'ArithmeticError'}

编辑:为了更清楚,我们还可以使用 itemgetter为我们返回的内容命名:

>>> from operator import itemgetter
>>> first_two = itemgetter(0, 1)

>>> first_two(['ZeroDivisionError', 'ArithmeticError', None])
('ZeroDivisionError', 'ArithmeticError')

那么上面的解就变成了:

>>> result = dict(first_two(sublist + [None]) for sublist in dep)

关于python - 如何从可能为空值的列表列表中生成字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53796842/

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