Найти - Пользователи
Полная версия: условие в list comprehensions
Начало » Python для новичков » условие в list comprehensions
1
robisho
Добрый день. Хочу разобраться, как в list comprehensions запихать условие.
Есть функция определения простых чисел.
 def issimple(n):  # функция определения простого числа
    for i in range(2, n):
        if n % i == 0:
            return False  # число не является простым  #
    return True  # простое число  #
k, llist = int(input()), []  # k-номер искомого простого числа
for i in range(2, k + 1):  # k=10001
    if issimple(i):
        llist.append(i)
print(llist)

Нужно запихать в list comprehensions условие из issimple(), ведь в llist добавляется только элемент, если перебор в цикле не выдал False.
Rodegast
 [ x for x in range(2, k + 1) if issimple(x) ]
robisho
Rodegast
не, ну так и я могу) спасибо, но нужно сделать без использования функции issimple() ))) вообще без объявления новых функций
robisho
в общем получилось так

 number = 100
[element for element in range(
        2, number + 1) if all(element % elem for elem in range(2, element))]
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