字典理解方法在Python 2.65中不起作用

时间:2018-10-24 19:47:11

标签: python-3.6 python-2.6 dictionary-comprehension

我在Python 3.6环境中编写了一个脚本,现在需要将其转换回Python 2.65。它特别不赞成其中一行代码。我使用字典理解来创建变量。 注意:NFHL_sx_firmpanPrelim_sx_firmpan是我正在比较的字典,用于查找它们之间“不共享”的差异。-

 unshared = {k: NFHL_sx_firmpan[k] for k in NFHL_sx_firmpan if k not in Prelim_sx_firmpan}

它在'for'上引发了一个语法错误,因此我尝试使用带有条件的旧for循环:

 unshared = dict()
 for k in NFHL_sx_firmpan:
     if k not in Prelim_sx_firmpan:
        unshared = k: NFHL_sx_firmpan[k]

它现在在':'之后在'k'上引发语法错误。我该如何翻译以使其在2.65下工作? (注2:在3.6中效果很好)

2 个答案:

答案 0 :(得分:1)

有什么阻止您执行以下操作吗?此语法在两个版本中都应适用。

(x:5, y:5, z:5)

答案 1 :(得分:1)

以下代码应与低于python 2.7的版本兼容

unshared = dict((k, NFHL_sx_firmpan[k]) for k in NFHL_sx_firmpan if k not in Prelim_sx_firmpan)