一聚教程网:一个值得你收藏的教程网站

热门教程

python实现list元素按关键字相加减的方法

时间:2022-06-24 19:46:33 编辑:袖梨 来源:一聚教程网

本文实例讲述了python实现list元素按关键字相加减的方法。分享给大家供大家参考,具体如下:

Python list中的元素按关键字相加或相减:

 

 代码如下复制代码

# coding=utf-8

# 两个list按关键字相加或相减

defListAdd(list1, list2, bAdd=True):

  ifbAdd==False:

    list2=[(k,-v)for(k, v)inlist2]

  d={}

  list0=list1+list2

  for(k, v)inlist0:

    d.setdefault(k,0)  # 设置字典元素初始值

    d[k]+=v       # 对字典中的元素按关键字相加

  ret=list(d.items())   # 字典转换成list

  ret=sorted(ret)     # 对list排序

  returnret

if__name__=='__main__':

  a=[("s1",10), ("s2",13), ("s3",25), ("s7",30)]

  b=[("s1",22), ("s3",16), ("s10",8)]

  print("a=", a)

  print("b=", b)

  ret1=ListAdd(a, b)   # ret1 = a + b

  print("ret1=", ret1)

  ret2=ListAdd(a, b,False)# ret2 = a - b

  print("ret2=", ret2)

 

运行:

 

 代码如下复制代码

E:ProgramPython>del.py

a=[('s1',10), ('s2',13), ('s3',25), ('s7',30)]

b=[('s1',22), ('s3',16), ('s10',8)]

ret1=[('s1',32), ('s10',8), ('s2',13), ('s3',41), ('s7',30)]

ret2=[('s1',-12), ('s10',-8), ('s2',13), ('s3',9), ('s7',30)]

 

热门栏目