python如何把列表里面的部分值相加??

请教下比如我有一个列表:mobile=[['apple','android','web',1,11],['apple','android','web',2,22],['a... 请教下比如我有一个列表:
mobile = [['apple', 'android', 'web', 1, 11],
['apple', 'android', 'web', 2, 22],
['apple', 'ios', 'web', 3, 33],
['apple', 'ios', 'web', 4, 44]]
怎么写让他输出以下的结果?(纠结很久了,烦请大侠指导下代码,好人一路平安啊)
[['apple', 'android', 'web', 3, 33],['apple', 'ios', 'web', 7, 77],['apple','total','web','10','110']
第1个列表把android的值相加,第2个列表把ios的值相加,第3个列表是所有值total的值相加,
#那个‘total’字段是一个自己定义的字符串,只要展示出来是结果和上面那样就可以了。
在线等~~先多谢了!
展开
 我来答
t59616
推荐于2016-02-12 · TA获得超过784个赞
知道小有建树答主
回答量:319
采纳率:50%
帮助的人:342万
展开全部
mobile = [['apple', 'android', 'web', 1, 11],
['apple', 'android', 'web', 2, 22],
['apple', 'ios', 'web', 3, 33],
['apple', 'ios', 'web', 4, 44]]

ls_android_3 = []
ls_android_4 = []
ls_ios_3 = []
ls_ios_4 = []
for i in mobile:
    if i[1] == 'android':
        ls_android_3.append(i[3])
        ls_android_4.append(i[4])
    if i[1] == 'ios':
        ls_ios_3.append(i[3])
        ls_ios_4.append(i[4])

ls1 = ['apple','android','web',sum(ls_android_3),sum(ls_android_4)]
ls2 = ['apple', 'ios', 'web', sum(ls_ios_3),sum(ls_ios_4)]
ls3 = ['apple','total','web',sum([ls1[3],ls2[3]]),sum([ls1[4],ls2[4]])]

ls_total = []
ls_total.append(ls1)
ls_total.append(ls2)
ls_total.append(ls3)

print ls_total
yycgis
2015-11-20 · TA获得超过8267个赞
知道大有可为答主
回答量:6831
采纳率:63%
帮助的人:1588万
展开全部

程序代码如下:

# -*- coding: cp936 -*-
mobile = [
    ['apple', 'android', 'web', 1, 11],
    ['apple', 'android', 'web', 2, 22],
    ['apple', 'ios', 'web', 3, 33],
    ['apple', 'ios', 'web', 4, 44]]

out=[]
temp=""
index=-1
for ii in range(len(mobile)):
    tempM=mobile[ii]
    if temp != tempM[1]:
        out.append(tempM)
        temp = tempM[1]
        index=index+1
    else:
        out[index][3]=out[index][3]+tempM[3]
        out[index][4]=out[index][4]+tempM[4]
print out

tempout=[]
tempout.append(out[0][0])
tempout.append('total')
tempout.append(out[0][2])
tempout.append(out[0][3])
tempout.append(out[0][4])
for iii in range(1,len(out)):
    tempout[3]=tempout[3]+out[iii][3]
    tempout[4]=tempout[4]+out[iii][4]
tempout[3]=str(tempout[3])
tempout[4]=str(tempout[4])
out.append(tempout)
print out
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-11-20
展开全部
我有一个甜甜圈
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式