试图使字典理解时语法无效?

时间:2019-10-24 01:04:23

标签: python dictionary dictionary-comprehension

<Thread(Dask-Worker-Threads'-7805-1, started daemon 140437285209856)>

由于某种原因,它将test_dict_comp中的第二个视为无效语法。

1 个答案:

答案 0 :(得分:0)

假设目标是用dict的值来创建test_list_k的{​​{1}}配对密钥,则您想要的是test_list_v(它将删除未配对的密钥),或zip(这将允许您为未配对的密钥提供填充值)。使用它的语法是:

itertools.zip_longest

或者在这种简单的情况下(无需进行任何过滤或转换,因此不需要理解),您可以直接将结果对的迭代器直接传递给test_dict_comp = {k: v for k, v in zip(test_list_k, test_list_v)} 构造函数:

dict

因为test_dict_comp = dict(zip(test_list_k, test_list_v)) 用于布尔测试,所以您的代码中断了,它无法以您尝试的方式组合任意语句片段。解析器尝试解析要在第一个for循环中迭代的值,并且当它到达and时会感到困惑(因为test_list_k and for之后必须跟另一个表达式才能产生另一个要如果确定test_list_k and为真,并且test_list_k是关键字,而不是for右侧的合法表达式),则进行真实性测试。