wudanyangggo 发表于 2021-1-24 18:51:01

大佬帮帮忙

#!/usr/bin/python3
a=
for each in a:
    if (type(each) == str):
      a.remove(each)
    print(sum(a))
    break
这段代码想要实现遍历列表然后删除列表中的字符串的功能,不知道哪里出错了,大佬帮忙看看

wudanyangggo 发表于 2021-1-24 18:52:12

print(sum(a))中报错显示a里有str和int,用print(a)后发现并没有实现删除字符串的功能,大佬们帮忙看看

suchocolate 发表于 2021-1-24 18:55:23

a =
for n,v in enumerate(a):
    if isinstance(v,str):
      a.pop(n)
print(sum(a))

qiuyouzhi 发表于 2021-1-24 18:55:29

把sum放到外面去就好了
a=
for each in a:
    if (type(each) == str):
      a.remove(each)
      break
print(sum(a))
P.S: 当你要遍历列表并从里面删除多个元素时,请使用列表切片!

°蓝鲤歌蓝 发表于 2021-1-24 18:56:30

a=
for each in a:
    if (type(each) == str):
      a.remove(each)
      break
print(sum(a))


print 要写在外面,因为要等 for 循环结束,str 类型的值才算被移除了。

逃兵 发表于 2021-1-24 19:05:41

break去掉,print放外面
#!/usr/bin/python3
a=
for each in a:
    if (type(each) == str):
      a.remove(each)

print(sum(a))

wudanyangggo 发表于 2021-1-24 19:16:58

感谢大佬们的回复
页: [1]
查看完整版本: 大佬帮帮忙