Найти - Пользователи
Полная версия: Свернуть цикл
Начало » Python для новичков » Свернуть цикл
1
hightime
Имеется вот такой список comb:
[
,
,
,
,
,
,
,
,
,
, ]

Не обязательно с таким содержимым конечно:)
Дальше есть вот такой код:
count = 0
for i in xrange(len(comb)):
print comb[i]
for c in comb[i]:
if c > 50:
count += 1
как вы поняли, считается количество элементов больше 50.

Как мне сей скрипт записать в одну строчку? я только начал знакомится с питоном и не до конца ещё понял lambda выражения и filter'ы.
o7412369815963
print sum(map(lambda x:len(filter(lambda x:x>50,x)), comb))
Ed
Вот чуть покороче и без лямбды:
print len([i for l in comb for i in l if i>50])
и еще короче:
print sum(i>50 for i in sum(comb, []))
PS: спасибо lsem за совет
Isem
А если убрать внешние квадратные скобки, то будет еще короче.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB