Python 如何对列表中的相似数字求和
因此,我只是在玩游戏,试图对类似的术语求和,只要它是一个特定的用户输入术语。例如,在一个列表中,Python 如何对列表中的相似数字求和,python,sum,Python,Sum,因此,我只是在玩游戏,试图对类似的术语求和,只要它是一个特定的用户输入术语。例如,在一个列表中,L=[1,2,2,3,4]然后我说我想要所有项的和都是2,所以2出现两次,我知道2+2=4,所以它会返回4 到目前为止,我觉得这比我想象的要容易得多: def main(): L = eval(input("Please enter the list") num = eval(input('Enter the number that has like terms')) slop
L=[1,2,2,3,4]
然后我说我想要所有项的和都是2,所以2出现两次,我知道2+2=4
,所以它会返回4
到目前为止,我觉得这比我想象的要容易得多:
def main():
L = eval(input("Please enter the list")
num = eval(input('Enter the number that has like terms'))
sloppyway = []
for nums in L:
if nums == num:
sloppyway.append(nums)
return (sum(sloppyway))
我想这会管用的,但我觉得有一种更优雅的方式。有什么建议吗?您可以将
sum
函数与生成器表达式一起使用,如下所示:
>>> L = [1,2,2,3,4]
>>> num=2
>>> sum(i for i in L if i==num)
4
或者,作为一种效率较低的方式,您可以使用过滤器
功能:
>>> sum(filter(lambda x :x==2,L))
4
但请注意,如果您的病情更复杂,这可能会有所帮助 您可以将
sum
函数与生成器表达式一起使用,如下所示:
>>> L = [1,2,2,3,4]
>>> num=2
>>> sum(i for i in L if i==num)
4
x= [1,2,2,3,4]
y=2
print sum([k for k in x if k==y])
或者,作为一种效率较低的方式,您可以使用过滤器
功能:
>>> sum(filter(lambda x :x==2,L))
4
但请注意,如果您的病情更复杂,这可能会有所帮助
x= [1,2,2,3,4]
y=2
print sum([k for k in x if k==y])
简单的列表理解
简单的列表理解。我喜欢最好的方法,这正是我想要的,谢谢!我喜欢最好的方式,这正是我想要的,谢谢!