代码:
t = [('a', 0), ('b', ), ('c', 2)]
d = dict(t)
for k in d:
print(k)
输出:
d = dict(t) ValueError:字典更新序列元素#1的长度为1; 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)