3
在Python(以及一般)中,字符串比较是做什么的?如果我有以下代码:字符串比较有什么作用?
def com(a):
if a > 'banana':
print 'yes'
else:
print 'no'
什么会使“大于”“香蕉”?我对“比较”这个概念有点困惑。什么是比较?
在Python(以及一般)中,字符串比较是做什么的?如果我有以下代码:字符串比较有什么作用?
def com(a):
if a > 'banana':
print 'yes'
else:
print 'no'
什么会使“大于”“香蕉”?我对“比较”这个概念有点困惑。什么是比较?
它执行词典字符串比较。
a > b
将解析:
a.__gt__(b)
在这种情况下a
是str
型的,所以它实际上调用str.__gt__(b)
与a
作为绑定的实例。 “gt”代表“大于”。
x.__gt__(y)
返回True
如果x
大于功能定义的y
。如果gt
没有定义,它将回退到使用a.__cmp__(b)
。根据比较结果返回-1,0,1。如果__cmp__
未针对a
类型定义,则会导致语法错误。
str
有一个__gt__
方法,所以它用于解决a > b
。您可以为任何自定义对象提供此方法。
请参阅有关富比较文档lt, le, eq, ne, gt, ge
以及cmp
的文档。
一般来说,这将是一个词典对比。 “A”<“B”,“AA”<“AB”,“ALPHA”>“ALPGZ” –
http://stackoverflow.com/questions/4806911/string-comparison-technique-used-by-python has a good答案 –
因此,词典的顺序是否“颠倒”?例如,'zzzzzzz'实际上'大于''香蕉'? – user1691278