如何解决如何将python字典语法从2.7转换为2.6?
我试图从安装了Python 2.6的Jenkins运行我的脚本。我的脚本最初是在使用2.7.5的Linux机器上编写的。每当我从本地计算机运行脚本时,它都可以正常工作,但是当我尝试从Jenkins运行脚本时,它会为以下代码引发语法错误:
rpmDict = {rpmList[i]: rpmList_full[i] for i in range (len(rpmList))}
rpmDataDict = {rpmDataTextList[i]: rpmDataTextList_full[i] for i in range (len(rpmDataTextList))}
有人可以帮我翻译成2.6语法吗?
解决方法
因此,在两个版本中,这完全是过度设计的。
rpmDict = {rpmList[i]: rpmList_full[i] for i in range (len(rpmList))}
应该是:
rpmDict = dict(zip(rpmList,rpmList_full))
并且:
rpmDataDict = {rpmDataTextList[i]: rpmDataTextList_full[i] for i in range (len(rpmDataTextList))}
应该是:
rpmDataDict = dict(zip(rpmDataTextList,rpmDataTextList_full))
但是正如另一个答案所指出的那样,在Python2.6中,
{expression0: expression1 for whatever in some_iterable}
可以转换为
dict((expression0,expression1) for whatever in some_iterable)
还请注意,您实际上应该尽可能多地使用Python 3。无论如何,在Python 2中,请使用:
from future_builtins import zip
这样zip
创建一个迭代器(而不是列表),效率更高,尤其是对于较大的数据。
只需使用dict
构造函数并将其传递给元组的生成器表达式即可:
rpmDict = dict((rpmList[i],rpmList_full[i]) for i in range(len(rpmlist)))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。