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

比较python中不同类型的字符串,python,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" 虽然两者包含相同的值,但我没有得到正确答

我用下面的方法得到两个包含整数值的字符串。我尝试了所有的选择,但结果总是错误的

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

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

    if string1 == temp_string2:
          print "data found"

虽然两者包含相同的值,但我没有得到正确答案。关于这一点,我可以有一些意见吗?

元素。层是一个
int
,而不是
字符串。这就是为什么
repr(string1)
将返回
7
,而不是
'7'
。你应该试试

string1` = str(element.layer)

同时请注意,您不应该直接通过
\uu dict\uu
访问对象属性,而应该使用
符号。

根据我在评论流中看到的内容

您能将打印报告(string1)和打印报告(temp_string2)添加到您的代码中吗 告诉我们变量包含什么


我得了7分和7分。我该怎么解决这个问题呢。为什么会有这样的分歧呢 了解到在这两种情况下都是字符串

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

如果
print repr(string1)
,返回
7
print repr(temp\u 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')

你能把打印repr(string1),repr(temp_string2)
添加到你的代码中,告诉我们变量包含什么吗?我得到了7和“7”。我该怎么解决这个问题呢。为什么会有这种差异。我知道在这两种情况下它都是字符串。同样,为什么要使用
元素。
而不是
元素。layer
@user765443——您是否将
字符串
int
进行比较?try:
type(string1)
@Martin我纠正了这个错误。我看到了现有的代码,所以我尝试使用相同的东西。我有element.layer,它也给了我同样的东西,得到了ISSUE。Thx抱歉我的疏忽您关于属性的奇怪访问的最后一条注释是错误的,它是
元素。层
-
元素
不是dict,原始的是访问它的
\uu dict\uuu
,然后从中获得。