for循环以及if条件语句下使用List append()方法添加值,新生成的列表出现重复赘余的值,同样的逻辑改成三元表达式输出就没有问题,如何解决?

要求通过输入一个由数字、空格和字母组成文本,输出文本中的数字之和(不包括同时含有字母和数字的词)。

如下图, 我的思路是通过遍历列表筛选出所有的数值,再使用sum函数,但是用第一张图上的代码求包括所有数值的列表却得不到想要的答案,即[2, 2]。

img

然后换成三元表达式就可以达到目的:

img

问题相关代码,请勿粘贴截图
a = "my numbers is 2 2"
b = a.split()
c = []

for n in b:
    if n.isdigit():
        c.append(int(n))
我的解答思路和尝试过的方法

尝试着把步骤中的内容打印出来:

img

想知道这样有什么问题,为什么会出现重复值和字符格式的值。

你是不是c=[]没有执行. c列表中之前已经有值

你这哪是三元表达式,是列表表达式啊
另,你的代码没有问题
运行出错的原因肯定是代码没贴全,你的c到底在哪定义的,都往里append什么东西了

img


你放在python里试了吗 我这边打印出来是符合题意的

不过我还有疑惑的一点是,就算我重复运行for循环,c列表里应该都是数值型的数字,为什么会出现字符类型的数字