这是一个解决最后和最后总和的好方法吗?第一个数字?

时间:2017-08-26 08:39:01

标签: python-3.x list-comprehension

我按照以下方式解决了https://www.codechef.com/problems/FLOW004

print(*[int(i[0])+int(i[-1]) for i in [list(str(input())) for _ in range(int(input()))]], sep='\n')

这是解决问题的好方法吗?

1 个答案:

答案 0 :(得分:0)

这当然是一种解决方法...... 意味着什么 - 它是否通过了测试?

使用循环,强制它在一行上不会更快,更不易读。 input()已经返回一个字符串,您可以将其编入索引而不将其转换为list,例如:

for _ in range(int(input())):
    i = input()
    print(int(i[0])+int(i[-1]))

您可以使用operator.itemgetter()来获取所需的值,例如:

import operator as op
fl = op.itemgetter(0, -1)

for _ in range(int(input())):
    print(sum(map(int, fl(input()))))

另一种解决它的数学方法:

In []:
import math

flsum = lambda x: x//(10**int(math.log10(x))) + x%10

for _ in range(int(input())):
    print(flsum(int(input())))

Out[]:
5
5
5