What does string comparison do?
字符串比较在Python中(以及一般情况下)做什么?如果我有以下代码:
1 2 3 4 5
| def com(a):
if a > 'banana':
print 'yes'
else:
print 'no' |
什么能使"比"香蕉"更大"?我对"比较"的概念有点困惑。正在比较什么?
- 一般来说,这是一个词典比较。"a"<"b","aa"<"ab","alpha">alpgz"
- stackoverflow.com/questions/48061911/&hellip;有一个很好的答案
- 因此,词汇语法顺序是否"颠倒"?例如,"zzzzz"实际上会大于"banana"?
- 我不知道你所说的"revered"是什么意思,但是在大多数语言中,"zzzz"与"banana"比较起来都比"banana"大。
- 词典编纂顺序是字母顺序的概括。想想字典里的词序。这个比较告诉你在英语词典中哪个词比另一个词先出现。
- 是的,'zzzzzzz' > 'banana'。
它执行词典编纂字符串比较。
将决心:
号
在这种情况下,a是str类型,所以它实际上称str.__gt__(b)为绑定实例,a为绑定实例。gt"表示大于"。
如果函数定义的x大于y,则x.__gt__(y)返回True。如果没有定义gt,它将回到使用a.__cmp__(b)。根据比较结果返回-1、0、1。如果没有为a的类型定义__cmp__,这将导致语法错误。
str有一个__gt__方法,因此用于解决a > b问题。可以为任何自定义对象提供此方法。
参见有关丰富比较的文档lt, le, eq, ne, gt, ge和cmp。