Python中的多个元组

问题描述 投票:-1回答:1

如果我有多个元组,如何在忽略字符串的同时计算每个元组的非素数之和,然后将它们添加到新列表中:

示例:从这些元组:

("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这个没有保留,因为它是素数

谢谢

python-3.x arraylist
1个回答
2
投票
  1. 您可以使用isinstance(n, int)检查数字是否为整数
  2. 写一个简单的素性检查函数(例如测试数字是否可以从2到其平方根的整数整除)
  3. 编写一个函数来过滤掉任何不符合上述测试的数字,并对其余数字求和
  4. 使用循环或列表推导将函数应用于元组并将它们放入列表中

所以最后你会得到这样的东西(假设你可以写一个素数检查器;我相信如果你需要更多的帮助,你可以在这个网站上有很多其他人):

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循环。

© www.soinside.com 2019 - 2024. All rights reserved.