为什么我不能像从列表中删除项目那样从元组中删除项目?

2024-05-15 11:28:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我通过创建排列生成了一个数字列表。我现在正试图从这个列表中删除非素数

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'

为什么这是一个元组而不是一个列表?不过,为什么我不能像删除列表一样从元组中删除项呢


Tags: fromimport列表items数字素数listprimes
1条回答
网友
1楼 · 发布于 2024-05-15 11:28:56

根据定义,元组是不可变的。您可以转换为一个列表,删除内容,然后转换回元组,如果你需要的话。另外,“values”是一个列表,但它是一个元组列表。转换为列表列表的简单方法:

values=[list(x) for x in values]

相关问题 更多 >