fata1ex
хз как переводится.
В математике так задают множества, но там без названия эта штука
SingularityБольшое спасибо за ответ - именно то что и требовалось - дальше можно уже гуглить когда знаешь как это называется.
Это list compression. Есть описания в доке и в книжке Лутца.
odnochlenВ задаче интересует реализация 2х моментов: 1) создание 2х мерного массива 2) подсчет отрицательных значений в нем. Извиняюсь что сразу не определил их в первом посте.
Посложнее:from random import randint as rand lst = [[randint(-10,10) for x in range(7)] for y in range(8)] count = sum(1 for l in lst for x in l if x<0) print("Число отрицательных элементов", count)
count = sum(1 for l in lst for x in l if x<0)
SenhionТебя абсолютно никто не заставляет использовать решения, которые ты не понимаешь (а с помощью функциональщины / списковых выражений в питоне этого можно достичь очень быстро).
В задаче “посложнее” возникает вопрос: как при подсчете count реализован обход 2х мерного массива?
count = sum(1 for l in lst for x in l if x<0)
sum_lst = [] for l in lst: for x in l: if x < 0: sum_list.append(1) # считает сумму элементов count = sum(sum_lst)
odnochlenЭто больше похоже на:
Аналог в императивном стиле:
count = sum([1 for l in lst for x in l if x<0])
odnochlenвсе-таки PEP 289 - Generator Expressions
count = sum(1 for l in lst for x in l if x<0)
Senhionhttp://docs.python.org/tutorial/datastructures.html#nested-list-comprehensions
как при подсчете count реализован обход 2х мерного массива?
reclosedevВлом было генератор мутить. Но логика и так понятна.
Это больше похоже на:
def gen(lst): for l in lst: for x in l: if x < 0: yield(1) # считает сумму элементов count = sum(gen(lst))
Senhion
В задаче интересует реализация 2х моментов: 1) создание 2х мерного массива 2) подсчет отрицательных значений в нем.
>>> matr = [[1, -1, 2, -2, 3], [1, -1, 2, -2, -3]] >>> len([i for i in sum(matr, []) if i < 0]) 5 >>>
py.user.nextКак это работает?sum(matr, [])
>>> help(sum) >>> lst = [[1], [2]] >>> sum(lst, []) [1, 2] >>>
odnochlenдля len() нужен список
Список не нужен.