How can a comparison operator be used with a[i:] < b[i:]?
本问题已经有最佳答案,请猛点这里访问。
在阅读一些Python代码时,我发现了这种语法
python列表索引中的冒号(:)
但是我回顾了我的代码示例,仍然不清楚它是如何使用我所理解的作为比较中拼接的快捷方式的。
我正试图将其反向工程为一个JavaScript等效函数。这种奇怪的比较是我唯一无法理解的。python究竟在比较什么?字符串长度?或者别的什么?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | def combineStrings(a, b): answer = '' a += '~' b += '~' i = 0 j = 0 while a[i] != '~' or b[j] != '~': print (i, a[i:], b[j:], a[i:] < b[j:]) if a[i] != '~' and a[i:] < b[j:]: answer += a[i] i += 1 else: answer += b[j] j += 1 print (answer) combineStrings('TACO', 'CAT') |
产量
1 2 3 4 5 6 7 8 | 0 TACO~ CAT~ False 0 TACO~ AT~ False 0 TACO~ T~ True 1 ACO~ T~ True 2 CO~ T~ True 3 O~ T~ True 4 ~ T~ False CATACOT |
按词典编纂顺序比较
如果您试图在EDOCX1(t)中找到至少与EDOCX1(t)一样大的字符,并在EDOCX1(a,c,o)中插入与
1 2 | 0 TACO~ AT~ False # because 'T' < 'A' 0 TACO~ T~ True # because '~' > 'A' |