用条件python寻找最小值

Hom*_*dal 4 python min conditional-statements python-2.7

a = []
for i in range(3):
    a.append(input())
j = 0
for i in a:
   if i % 10 != 7:
       j = min(a)
print j
Run Code Online (Sandbox Code Playgroud)

我需要一种算法,找到列表中最小的正数,其十进制表示不以数字 7 结尾。保证列表至少有一个正元素,其十进制表示不以数字 7 结尾。我尝试过这个,但是条件不行。例如:它表示[9,8,7]中7是最小的。

Mar*_*ers 5

始终在测试 中的最小数字a,尽管测试的次数与 中未过滤的数字一样多a。首先不要将结尾7为 to的数字相加;a您可能也想过滤数:

a = []
for i in range(3):
    value = input()
    if i % 10 != 7 and i >= 0:
        a.append(value)

print min(a)
Run Code Online (Sandbox Code Playgroud)

或者,过滤掉生成器表达式中的值:

a = []
for i in range(3):
    a.append(input())

print min(i for i in a if i % 10 != 7 and i >= 0)
Run Code Online (Sandbox Code Playgroud)