Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将比较运算符与[i:]一起使用<;b[i:]?_Python_String Comparison - Fatal编程技术网

Python 如何将比较运算符与[i:]一起使用<;b[i:]?

Python 如何将比较运算符与[i:]一起使用<;b[i:]?,python,string-comparison,Python,String Comparison,在阅读一些Python代码时,我发现如果a[I:][b[j:][/code>和冒号将我抛出一个循环,就会出现这种语法。我发现了一个很好的问题/答案: 但后来我回顾了我的代码示例,仍然不清楚它是如何使用我所理解的拼接快捷方式进行比较的 0 TACO~ AT~ False # because 'T' < 'A' 0 TACO~ T~ True # because '~' > 'A' 我正在尝试将其反向工程为JavaScript等效函数。这种奇怪的比较是我唯一不能理解的。pytho

在阅读一些Python代码时,我发现如果a[I:][b[j:][/code>和冒号将我抛出一个循环,就会出现这种语法。我发现了一个很好的问题/答案:

但后来我回顾了我的代码示例,仍然不清楚它是如何使用我所理解的拼接快捷方式进行比较的

0 TACO~ AT~ False # because 'T' < 'A'
0 TACO~ T~ True   # because '~' > 'A'
我正在尝试将其反向工程为JavaScript等效函数。这种奇怪的比较是我唯一不能理解的。python到底在比较什么?字符串长度?还是别的什么

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')
这是一种比较

如果您试图在
b
(T)中找到与
a
(T)一样大的字符,并在
a
(a、C、O)中插入
b
中小于该字符的所有连续字母,则此代码是有意义的

~
是最大的可打印ASCII字符(126),因此用作比较

0 TACO~ AT~ False # because 'T' < 'A'
0 TACO~ T~ True   # because '~' > 'A'
0taco~AT~False#因为'T'<'A'
0塔可~T~对#因为~'>'A'

您真正想问的是什么?@ddor254我想问的是如何使用切片表示法来比较字符串?python会自动比较长度吗?还是在比较其他东西?不要让最后一个冒号迷惑你,它属于
if
语句
a[i://code>和
b[j://code>只是
a
从第i个索引开始到结尾的标准符号。因此,您的问题不是字符串切片,而是字符串比较。这是一个“简单”的词典比较
T
==
T
,但
a
是子字符串
TACO~
在字典中会出现在
CAT~
之后,但在
T~
之前。真让人吃惊,谢谢!我从来没有尝试过这样比较字符串,我刚刚了解到JavaScript也支持这样的字符串。实际上,我一直认为字典是默认值…默认值与什么相反?我只使用过Python、VBA和Java,它们都使用字典比较,所以我认为这是正常的。这是正常的,我只是说直到现在我才用过。