cxckb 发表于 2018-9-21 19:35:30

如何计算字符串里的数字和

例如 a = [ ['小,1'],['小,2'],['小,3'],['大,5'],['大,9'] ]

如何才能求出 小、大各自的和?

凌九霄 发表于 2018-9-21 20:03:46

本帖最后由 凌九霄 于 2018-9-21 20:38 编辑

先要将提取出来再计算
a = [ [ '小,1' ], [ '小,2' ], [ '小,3' ], [ '大,5' ], [ '大,9' ] ]

c, d = 0, 0
for i in a:
    if i[ 0 ][ 0 ] == '小':
      c += int(i[ 0 ][ 2 ])
    else:
      d += int(i[ 0 ][ 2 ])
print(c, d)

cxckb 发表于 2018-9-21 20:41:20

凌九霄 发表于 2018-9-21 20:03
先要将提取出来再计算

a = [ ['小,1'],['小,2'],['小,3'],['大,5'],['大,9'] ]
list1 = []
list2 = []
list3 = []
list4 = []
for x in a:
    if str(x) =='小':
      list1.append(str(x))
    else:
      list2.append(str(x))
for b in list1:
    list3.append(int(b))

for c in list2:
    list4.append(int(c))
print("list3=",sum(list3),"list4=",sum(list4))

我是这样写的,不过太啰嗦了,请问有没有简化的办法?

凌九霄 发表于 2018-9-21 20:57:27

cxckb 发表于 2018-9-21 20:41
a = [ ['小,1'],['小,2'],['小,3'],['大,5'],['大,9'] ]
list1 = []
list2 = []


看上面,暂时没想到更简单的

冬雪雪冬 发表于 2018-9-21 21:30:55

把你的列表改动了。
a = [ ['小','1'],['小','2'],['小','3'],['大','5'],['大','9'] ]
print('小的和:', sum(map(lambda x: int(x) if x == '小'else 0, a)))
print('大的和:', sum(map(lambda x: int(x) if x == '大'else 0, a)))

cxckb 发表于 2018-9-21 21:33:03

冬雪雪冬 发表于 2018-9-21 21:30
把你的列表改动了。

{:5_109:}哇 十分感谢

cxckb 发表于 2018-9-21 21:33:36

凌九霄 发表于 2018-9-21 20:57
看上面,暂时没想到更简单的

十分感谢!
页: [1]
查看完整版本: 如何计算字符串里的数字和