Проблема вставки значения из одного списка в другой, если это значение является простым числом - PullRequest
2 голосов
/ 26 февраля 2020

Я пытаюсь добавить только простые числа из моего первого списка во второй список.

Я не получаю никакого вывода.

li1= [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
li2=[]

def is_primeList(lst):
    pos = 2
    for i in range(len(lst)):
        x = True
    if(i<2):
        x = False
        for j in range(2, i):
            if i% j == 0:
                x = False
                break
        if x:
            li2.insert(i + pos, li1[i])
        else:
            print("Not prime")

is_primeList(li1)

for element in li2:
    print(element)

Ответы [ 3 ]

0 голосов
/ 26 февраля 2020

В вашем коде оператор if находится за пределами for, поэтому он никогда не будет выполняться должным образом, сделайте отступ справа от кода

0 голосов
/ 26 февраля 2020
li1= [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
_prime_list = li1[2:3]


def is_primeList():
    for _i in li1[3:]:
        # print _i,
        _is_prime = [_i % _n == 0 for _n in _prime_list]
        # print _is_prime
        if not any(_is_prime):
            _prime_list.append(_i)

is_primeList()
print _prime_list

Выходы

[2, 3, 5, 7, 11, 13, 17, 19]

В вашем коде есть ошибки. Пожалуйста, используйте этот пример в качестве отправной точки

0 голосов
/ 26 февраля 2020

Возвращает:

li1= [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
li2=[]

def is_primeList(lst):
    pos = 2
    for i in range(len(lst)):
        x = True
        if(i<2):
            x = False
        else:
            for j in range(2, i):
                if i% j == 0:
                    x = False
                    break
        if x:
            li2.insert(i + pos, li1[i])
        else:
            print("Not prime")

is_primeList(li1)

for element in li2:
    print(element)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...