如果我有多个元组,如何在忽略字符串的同时计算每个元组的非素数之和,然后将它们添加到新列表中:
示例:从这些元组:
("Hi", 1, 2, 3)
()
(5, 20, "python", "!")
(7, "java")
我会得到:[6, 0, 25]
因为:
("Hi", 1, 2, 3)
会给1+2+3 = 6
,()
会给0
,(5, 20, "python", "!")
会给5+20 = 25
,(7, "java")
会给7
这个没有保留,因为它是素数
谢谢
isinstance(n, int)
检查数字是否为整数所以最后你会得到这样的东西(假设你可以写一个素数检查器;我相信如果你需要更多的帮助,你可以在这个网站上有很多其他人):
def sum_nonprimes(seq):
return sum(n for n in seq if isinstance(n, int) and not is_prime(n))
[sum_nonprimes(tup) for tup in tuple_list]
sum中的表达式是生成器表达式;它是在满足条件的序列中生成n的简明方法。如果您不喜欢这种语法,还有其他方法可以做到这一点,包括使用filter()
函数或简单的for循环。