Python 用给定的输出替换列表中的主索引

Python 用给定的输出替换列表中的主索引,python,indexing,Python,Indexing,编写一个函数,该函数接受唯一正数的列表,并通过删除原始列表中素数位置的元素来返回该列表的子集 例如: 输入: [2, 567, 34, 35, 8, 77] 这里,元件2位于第一位置,元件567位于第二位置,依此类推 输出: [2, 35, 77] 这里,当元素567、34和8出现在素数位置(即第2、第3和第5)时,它们被删除。使用is_素数并枚举 def is_prime(num): if num < 2: return False for integ

编写一个函数,该函数接受唯一正数的列表,并通过删除原始列表中素数位置的元素来返回该列表的子集

例如:

输入:

[2, 567, 34, 35, 8, 77]
这里,元件2位于第一位置,元件567位于第二位置,依此类推

输出:

[2, 35, 77]

这里,当元素567、34和8出现在素数位置(即第2、第3和第5)时,它们被删除。

使用is_素数并枚举

def is_prime(num):
    if num < 2:
        return False
    for integer in range(2, int(num ** 0.5)+1):
        if num % integer == 0:
            return False
    return True

lst = [2, 567, 34, 35, 8, 77]
# Use list comprehension to filter out numbers with prime index
# use start argument to start enumeration at 1 (0 is the default)
# for i, v in enumerate(lst, start = 1) provides a list
# of tuples of index and value for each element in list lst
answer = [v for i, v in enumerate(lst, start = 1) if not is_prime(i)]
print(answer) # Output: [2, 35, 77]
def为素数(num):
如果num<2:
返回错误
对于范围(2,int(num**0.5)+1)内的整数:
如果num%integer==0:
返回错误
返回真值
lst=[2567,34,35,8,77]
#使用列表理解筛选出具有素数索引的数字
#使用start参数在1处开始枚举(默认值为0)
#对于i,枚举中的v(lst,start=1)提供了一个列表
#列表lst中每个元素的索引和值的元组
答案=[v代表i,v在枚举(lst,start=1)中,如果不是_素数(i)]
打印(回答)#输出:[2,35,77]
试试这个:

l2 =[]
for index, value in enumerate(l1):
    #print(index)
    if index > 1:
        # Iterate from 2 to n / 2  
        for i in range(2, index): 
            if (index % i) == 0: 
               print(index, "is not a prime number") 
               l2.append(value)
               break
        else:
            print(index, " is a prime number") 
    else: 
        print(index, "is not a prime number")
        l2.append(value)
print(l2)
#函数检查数字是否为素数

def isPrime(num):
    if num < 2:
        return False
    
    elif num == 2:
        return True
        
    #to check if num is divisible by any number in range [2, num/2]
    for i in range(2, int((num/2) + 1)):

            if (num % i == 0):
                return False

    return True

def get_subset(numbers: list):
    subset = []

    for index, number in enumerate(numbers):
        if not isPrime(index + 1):
            subset.append(number)

    return subset
def isPrime(num):
如果num<2:
返回错误
elif num==2:
返回真值
#检查num是否可被[2,num/2]范围内的任何数字整除
对于范围(2,int((num/2)+1)中的i:
如果(num%i==0):
返回错误
返回真值
def get_子集(编号:列表):
子集=[]
对于索引,枚举中的数字(数字):
如果不是iPrime(索引+1):
subset.append(数字)
返回子集

请说明代码和您采取的步骤。请参见提示:在
Python
中查找
enumerate()
is_prime()