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