为了账号安全,请及时绑定邮箱和手机立即绑定

我用的python3,有什么问题吗

def cmp_ignore_case(s1, s2):
    l1 = s1.lower()
    l2 = s2.lower()
    if l1 > l2:
        return 1
    if l1 < l2:
        return -1
    return 0
print (sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case))

正在回答

3 回答

Python2,sorted语法格式:

http://img1.sycdn.imooc.com//593901f000011e4b11110523.jpg

Python3,sorted语法格式:

http://img1.sycdn.imooc.com//593901f00001f2df11080379.jpg

可见Python3不支持该种方式了,所以只能写成其他方式:如:

print(sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower))


另:Python3版本print也发生了变化:

Python2的print是属于语句,格式:print A

Python3的print是属于函数,格式:print()


参考资料:https://docs.python.org/3.6/library/functions.html#sorted


3 回复 有任何疑惑可以回复我~
#1

慕容6867473 提问者

非常感谢!
2017-06-12 回复 有任何疑惑可以回复我~

python3.6实测可行:

def cmp_ignore_case(s1):

    return s1.lower()

print(sorted(['bob', 'about', 'Zoo', 'Credit'], key=cmp_ignore_case,reverse=False))


python2.x -> sorted(iterable, cmp=None, key=None, reverse=False)

python3.x -> sorted(iterable, key=None, reverse=False)

取消了cmp对比函数,所以只能拿key进行对比,而key函数只接受1个变量。


1 回复 有任何疑惑可以回复我~
#1

mk充满爱与正义

参考资料: http://blog.csdn.net/windows_2015/article/details/51498505
2017-06-16 回复 有任何疑惑可以回复我~
#2

慕容6867473 提问者

非常感谢
2017-06-20 回复 有任何疑惑可以回复我~

我用的2.7,没毛病啊

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

我用的python3,有什么问题吗

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信