检查数字列表中是否存在数字

时间:2015-09-24 19:46:46

标签: python int contains

如何查看索引是否包含某些数字?

numbers = [2349523234, 12345123, 12346671, 13246457, 134123431]

for number in numbers:
    if (4 in number):
        print(number + "True")
    else:
        print("False")

3 个答案:

答案 0 :(得分:6)

您必须为此

进行字符串比较
for number in numbers:
    if '4' in str(number):
        print('{} True'.format(number))
    else:
        print("False")

询问数字4是否在“另一个数字”中是没有意义的(除非你对“in”有一些特定的定义)

答案 1 :(得分:5)

您可以将数字转换为字符串,如果您想获得其中包含4的第一个数字,您可以在next中使用生成器表达式:

>>> next(i for i in numbers if '4' in str(i))
2349523234

如果您想保留满足条件的数字,您可以使用列表推导:

expected_numbers=[i for i in numbers if '4' in str(i)]

但从数学的角度来看,您可以使用以下函数生成所有数字:

In [1]: def decomp(num):
   ...:     while num:
   ...:         yield num % 10
   ...:         num = num // 10    

然后您可以执行以下操作:

In [3]: numbers = [2349523234, 12345123, 12346671, 13246457, 134123431]

In [4]: [n for n in numbers if any(4==i for i in decomp(n))]
Out[4]: [2349523234, 12345123, 12346671, 13246457, 134123431]

答案 2 :(得分:-1)

Klist = []
count = 0
while count < 1000:
    count += 1
    Klist.append(count)
for k in Klist:
    if '6' in str(k):
        print(k)

您创建列表,然后循环访问数字,但将其作为字符串。