-
获取字符串中所有数字字符的数值和 给定一个字符串,其中含有数学字符,求所有数字字符的和 先给出代码:
result = sum(map(int,filter(str.isdigit, text.split())))代码非常简单:
1. `text.split()`,分离字符串,得到各个子串 2. 使用过滤函数 `filter`,应用 `str.isdigit` 到分离后的各个子串上面,将其中的数字字符串过滤出来 3. 使用 `map` 函数,应用 `int` 函数到过滤后的数字字符串上面,得到数值型的结果 4. 利用 `sum` ,计算所有数值的结果。这里需要注意的是:
filter、map使用的所谓函数都不能带括号 -
按下标统计列表元素的和 一般情况下,都是按值对列表中的元素进行统计,比如说,找出可以被2整除的元素,并对其求和,etc… 这个题目有些变化,原题是这样的: 几个人站成一排,需要分成两队。第一个人进入第1 队,第二个进入第2队,第三个人再进入第1 队,第四个人进入第2队,依此类推。 给定一组正整数——人的权重,返回一个由两个整数组成的数组,其中第一个元素是1队的总重量,第二个元素是2队的总重量。 对于
a = [50, 60, 60, 45, 70],输出应该是solution(a) = [180, 105]. 正常思路,肯定是对数组使用enumerate,依据下标k是否被2整除来处理,这里用到一个更简单的遍历方法:return [sum(v for (k,v) in enumerate(a) if k % 2 == 0), sum(v for (k,v) in enumerate(a) if k % 2 != 0)]用一行代码即可解决问题。
能不能解决此类问题.我想他这个问题进一步消化掉。如果是可以进一步消化掉的话,可能会更加便利一些。