比较不同类型的python中的字符串

时间:2013-01-01 13:54:09

标签: python

我以下列方式获得两个包含整数值的字符串。我已经尝试了所有选项,但结果总是得到假。

    string1    = element.__dict__.get('layer')    # '7'

    temp_string2,temp_string3=temp_key.split(':') # temp_key = '7:12'

    if string1 == temp_string2:
          print "data found"

虽然两者都包含相同的值,但我没有得到True。我可以就此提出一些意见吗?

2 个答案:

答案 0 :(得分:1)

element.layerint,不是string。这就是repr(string1)返回7而不是'7'的原因。你应该试试

string1` = str(element.layer)

请注意,您不应直接通过__dict__访问对象属性,而应使用.表示法。

答案 1 :(得分:0)

基于我在评论流中看到的内容

  

您可以将print repr(string1),repr(temp_string2)添加到您的代码中   告诉我们变量包含什么?

     

我得到7和'7'。我将如何解决这个问题。为什么这种不同。我   了解到它在两种情况下都是字符串

很明显,您正在将整数与字符串进行比较。

如果print repr(string1),则返回7print repr(temp_string2)返回"7",然后返回string1,这是

string1    = element.__dict__.get('layer')

应该是一个整数

因此,您必须在比较之前将string1转换为integer

if str(string1) == temp_string2:
     print "data found"

或从字典

中检索值后将其转换为字符串
string1 = str(element.__dict__.get('layer'))

奇怪的是,它是一种非常规的方式来访问dict的get方法,相反,您可以简单地使用.符号来引用成员

string1    = element.get('layer')