查询集返回了一个列表:
list1=[2856,28564,1245,232856]
当我尝试通过写:
查找上面列表中是否存在数字时num=2856
if num in list1:
它匹配2856,25564和232856.我怎样才能确保它只匹配2856而不是其余的?
抱歉,我是Python新手,无法找到解决方案。如果我问一个重复的问题,请道歉。
答案 0 :(得分:3)
它的行为与你的建议不符。实际上,您当前的语法会提供所需的输出。
>>> list1=[2856,28564,1245,232856]
>>> num=2856
>>> if num in list1:
... print(num)
...
2856
>>>
这是您建议的行为。注意在这种情况下如何将整数转换为字符串。
>>> list1 = [2856,28564,1245,232856]
>>> num = 2856
>>> [x for x in list1 if str(num) in str(x)]
[2856, 28564, 232856]
答案 1 :(得分:0)
对于您的具体示例:
[如果x == 2856,则x在list1中为x] [0]
返回一个单独的元素列表,其中只包含您想要的值,并且您可以访问其唯一的位置来获取元素。
答案 2 :(得分:-1)
您正在检查num的值是否在列表中。因此,表达式
num in list1
如果num等于list1的任何项,则为True。要使num只等于第一个(这里:2856),你必须写:
num == list1[0]