阶乘奇数加偶数减c语言,在Python中加偶数,减奇数

您可以将conditional expression与for循环一起使用,在运行的total/sm中添加偶数并减去奇数:lst = [6,8,95,2,12,152,4,78,621,45]

sm = 0

for ele in lst:

sm = sm + ele if not ele % 2 else sm - ele

对于偶数,if not ele % 2将为True,因为0是一个错误的值。在

您还可以检查least significant bit,if ele & 1,如果为True,则表示该数字为奇数,或者{}来查找偶数:

^{pr2}$

print(sum(-ele if ele & 1 else ele for ele in lst))

sum与list一样是一个内置函数,因此请尽量避免使用其中一个作为变量名。在

只是出于兴趣一些时间安排:In [8]: timeit sum(-x if x % 2 else x for x in lst)

1000000 loops, best of 3: 1.44 µs per loop

In [9]: %%timeit

sm = 0

for ele in lst:

sm = sm + ele if not ele % 2 else sm - ele

...:

1000000 loops, best of 3: 1.12 µs per loop

In [11]: timeit sum(-ele if ele & 1 else ele for ele in lst)

1000000 loops, best of 3: 1.27 µs per loop

In [13]: %%timeit

sm = 0

for ele in lst:

sm = sm + ele if not ele % 2 else sm - ele

....:

1000000 loops, best of 3: 1.11 µs per loop

In [14]: %%timeit

sm = 0

for ele in lst:

sm = sm - ele if ele & 1 else sm + ele

....:

1000000 loops, best of 3: 875 ns per loop

In [15]: %%timeit

....: total = 0

....: for x in lst:

....: if x % 2: # odd

....: total -= x

....: else: # even

....: total += x

1000000 loops, best of 3: 1.02 µs per loop

In [16]: timeit sum(x * (1 - (x % 2 * 2)) for x in lst)

100000 loops, best of 3: 2.2 µs per loop

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值