我通过创建排列来生成一个数字列表。我现在正尝试从此列表中删除非素数。
import itertools
from sympy import isprime
values = list(itertools.permutations([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 4))
def removeNonPrimes(items):
return [p for p in items if isprime(p)]
primes = removeNonPrimes(values)
print primes
但是,当我尝试创建仅包含素数的新列表时,我收到以下错误:
TypeError: int() argument must be a string or a number, not 'tuple'
为什么这是元组而不是列表?不过,为什么我不能像列表一样从元组中删除项目?
答案 0 :(得分:0)
根据定义,元组是不可变的。您可以转换为列表,删除内容,然后根据需要转换回元组。此外,“值”是一个列表,但它是一个元组列表。转换为列表列表的简便方法:
values=[list(x) for x in values]