如何精确比较字符串

时间:2019-05-20 11:52:45

标签: python python-3.x string substring

我想相互比较2个字符串。

我尝试了'in''==''is'运算符。但是它不能正常工作。

第一个代码:

myStrings = ['test1', 'test2', 'test3', 'test11', 'test111', 'test56']

for elem in myStrings:
    if 'test1' in elem:
        print('success')

第二个密码:

myStrings = ['test1', 'test2', 'test3', 'test11', 'test12', 'test56']

for elem in myStrings:
    if 'test1' is elem[0:len('test1')]:
        print('success')

预期: 成功应该只打印一次。但是它正在打印3次。它也已成功与'test11''test12'进行比较。

对不起,我没有完全解释这个问题。

列表中字符串的长度不是固定的。它是可变的。 字符串“ test1”是多个字符串的子字符串。

现在,在下一步中,我还想将“ test11”与列表中的元素进行比较。但是这里失败了。由于它与“ test11”和“ test111”匹配。

抱歉,该语言。

2 个答案:

答案 0 :(得分:1)

使用==代替is。

在Python中==和is运算符之间的差异。 ==运算符比较两个操作数的值并检查值是否相等。而is运算符则检查两个操作数是否引用相同的对象。

关于它的stackoverflow帖子: Is there a difference between "==" and "is"?

myStrings = ['test1', 'test2', 'test3', 'test11', 'test12', 'test56']

for elem in myStrings:
    if 'test1' == elem:
        print('success')

输出:

success

答案 1 :(得分:0)

尝试检查列表中的元素是否等于'test'

myStrings = ['test1', 'test2', 'test3', 'test11', 'test12', 'test56']
for elem in myStrings:
   if elem=='test1':
     print('success')

输出

success