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()
。