词典理解方法在 Python 2.65 中不起作用
Dictionary comprehension method not working in Python 2.65
我在 Python 3.6 环境中编写了一个脚本,现在需要将其转换回 Python 2.65。它特别不赞成一行代码。我使用字典理解来创建变量。
注意:NFHL_sx_firmpan
和 Prelim_sx_firmpan
是我正在比较的字典,以找出它们之间 'not shared' 的差异。-
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 中运行良好)
是否有任何事情阻止您执行以下操作?此语法应该适用于两个版本。
unshared = {}
for k in NFHL_sx_firmpan:
if k not in Prelim_sx_firmpan:
unshared[k] = NFHL_sx_firmpan[k]
下面的代码应该与低于 Python 2.7
的版本兼容
unshared = dict((k, NFHL_sx_firmpan[k]) for k in NFHL_sx_firmpan if k not in Prelim_sx_firmpan)
我在 Python 3.6 环境中编写了一个脚本,现在需要将其转换回 Python 2.65。它特别不赞成一行代码。我使用字典理解来创建变量。
注意:NFHL_sx_firmpan
和 Prelim_sx_firmpan
是我正在比较的字典,以找出它们之间 'not shared' 的差异。-
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 中运行良好)
是否有任何事情阻止您执行以下操作?此语法应该适用于两个版本。
unshared = {}
for k in NFHL_sx_firmpan:
if k not in Prelim_sx_firmpan:
unshared[k] = NFHL_sx_firmpan[k]
下面的代码应该与低于 Python 2.7
的版本兼容unshared = dict((k, NFHL_sx_firmpan[k]) for k in NFHL_sx_firmpan if k not in Prelim_sx_firmpan)