我在 python 3 中使用 operator.setitem 时遇到问题。
当我使用下面的代码并在 python 3.1 中运行它时。
people=(('fred','sam','jane','betty'),(1,2,3,4))
p_dict = {}
map(operator.setitem, [p_dict]*len(people[0]), people[0],people[1])
print (p_dict)
>>> {}
这只是打印出一个空字典 {}。
但我使用相同的代码在 python 2.6 中运行。 它打印出 {'jane': 3, 'betty': 4, 'sam': 2, 'fred': 1} 。 这就是我想要的结果。
那么,有人能告诉我在 python 3 中运行这段代码时出现了什么问题吗? 提前致谢。
请您参考如下方法:
这是一种非常不符合 Python 风格的方法。这样更好(也更有效):
people = (('fred','sam','jane','betty'), (1,2,3,4))
p_dict = dict(zip(*people))
适用于 2.x 和 3.x。
