匹配python列表中的数字内的数字

时间:2016-07-28 11:45:15

标签: python

查询集返回了一个列表:

list1=[2856,28564,1245,232856]

当我尝试通过写:

查找上面列表中是否存在数字时
num=2856
if num in list1:

它匹配2856,25564和232856.我怎样才能确保它只匹配2856而不是其余的?

抱歉,我是Python新手,无法找到解决方案。如果我问一个重复的问题,请道歉。

3 个答案:

答案 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]