如何在没有值的情况下打印键

时间:2017-06-11 02:49:56

标签: python

代码:

t = [('a', 0), ('b', ), ('c', 2)]
d = dict(t)
for k in d:
    print(k)

输出:

d = dict(t) ValueError:字典更新序列元素#1的长度为1; 2是必需的

我如何获得没有价值的钥匙?

2 个答案:

答案 0 :(得分:3)

它不是关于打印,而是关于dict()需要一个元组列表,其中包含两个元素的创建。在您的所有空白'中添加第二个元素。元组,或创建您的字典:

d = {i[0]: i[1] if len(i) > 1 else None for i in t}

或:

d = {i[0]: next(iter(i), None) for i in t}

答案 1 :(得分:1)

输入

t = [('a', 0), ('b', ), ('c', 2)]

更改输入

这样做的简便方法是将t更改为:

t = [('a', 0), ('b', None), ('c', 2)]

您自己的代码将有效。

制作代码

如果您不想更改输入t,可以执行以下操作:

d = {x[0]: x[1] if len(x) > 1 else None for x in t}

# Or:
#d = {i[0]: next(iter(i), None) for i in t}

print(d)

同样:

d = {}
for x in t:
    if len(x) > 1: d[x[0]] = x[1]
    else: d[x[0]] = None

print(d)