Как написать этот код Python в понимании списка - PullRequest
0 голосов
/ 31 октября 2018

Печать номера, если каждый элемент числа четен:

a=[111,222,333,444,232,343]
count =0
b = []
for i in a:
    for j in str(i):
        if int(j) % 2 == 0:
            count +=1
            if count == len(str(i)):
                b.append(i)
        else:
            count = 0
            break
print b

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Вы также можете использовать фильтр:

b = list(filter(lambda x: all(int(i)%2 == 0 for i in set(str(x))), a))
0 голосов
/ 31 октября 2018

Этот список работает:

b = [i for i in a if all(int(j)%2 == 0 for j in set(str(i)))]

>>> b
[222, 444]

Включает кастинг для установки, так что вы смотрите только на уникальных персонажей, составляющих каждый элемент. Кроме того, он использует all для проверки четности каждого символа в этом наборе.

...