eastlakeside / interpy-zh

📘《Python进阶》(Intermediate Python - Chinese Version)
https://py.eastlakeside.cn
Apache License 2.0
6.45k stars 1.33k forks source link

17.0 lambda表达式 最后的例子-列表并行排序在python3中失效 #52

Closed jay3zhang closed 7 years ago

jay3zhang commented 7 years ago

列表并行排序,原来的代码

    data = zip(list1, list2)
    data.sort()
    list1, list2 = map(lambda t: list(t), zip(*data))

python3中报错: AttributeError: 'zip' object has no attribute 'sort'

应该改为

    data = zip(list1, list2)
    data = sorted(data)
    list1, list2 = map(lambda t: list(t), zip(*data))

这是因为在python2中zip()返回的是list类型,而在python3中返回的是zip类型(一种可迭代类型),所以不能用sort(),而应该改为sorted()。

P.S. 原库 intermediatePython 目前也有这个问题

suqi commented 7 years ago

谢谢, 还把解决方案都拿出来了, 可以直接提PR的 👍

已改 933c9d2c39716f63aec4c81c5a2ae14e38b73719