我试图将列表中的数字除以同一列表中的一些数字。
这是我的代码:
for i in numbers:
list_position = numbers.index(i)
half_list_position = int(list_position//2 + 1)
if i % numbers[0:half_list_position] in numbers == 0:
prime_list.remove(i)
正如你所看到的,我想把'i'除以它前面的数字的一半除以零,我试图通过使用列表索引来做到这一点。如果在任何点'i'除以列表中的一个数字返回余数为零,我想从另一个列表(prime_list)中删除相同的数字'i',然后移动到列表'numbers'中的下一个数字。
这会返回一个类型错误:不支持的操作数类型。
我怎样才能解决这个问题?
谢谢,
本
答案 0 :(得分:2)
列表切片是一个列表,数字和列表之间不支持模数([0 : half_list_position]
甚至不是切片):
i % [0:half_list_position]
您可以这样做:
if sum(1 for n in numbers[:half_list_position] if i % n == 0) > 0:
prime_list.remove(i)