条件字典显式初始化

2024-05-03 08:27:49 发布

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

我需要根据给定元组中元素的数量向列表中添加一个字典。想法如下:

# t is tuple containing 1 or 2 elements, l is list
l = list()
l.append({
    'A': t[0],
    if len(t) > 1: ('B': t[1])
})

所以,如果t = [7, 8],那么l = [{'A': 7, 'B': 8}],如果t = [7],那么l = [{'A': 7}]。在

我怎样才能做到这一点?在


Tags: or元素列表数量lenif字典is
3条回答

或者,您可以编写以下行来创建字典:

[dict(zip(['A', 'B'], t))]

那么如果t = [7, 8]

^{pr2}$

如果t = [7]

>>> [dict(zip(['A', 'B'], t))]
[{'A': 7}]

函数zipt创建元组,字母列表的长度只到最短列表的长度。dict将元组映射到字典键/值。在

您可以使用if语句。在

d = { 'A':t[0] }
if len(t) > 1:
     d['B'] = t[1]
l = [d]

或者你可以理解:

^{pr2}$

如果元组的长度在0到26之间,这就可以了。(之后你就没信了。)

由于压缩功能在两封电子邮件中最短的一封中停止,所以我喜欢以下选项:

l.append({key:value for key, value in zip(['A', 'B'], t)})

相关问题 更多 >