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


Posted in Python onJune 09, 2017

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

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

# coding=utf-8
# 两个list按关键字相加或相减
def ListAdd(list1, list2, bAdd = True):
  if bAdd == False:
    list2 = [(k, -v) for (k, v) in list2]
  d = {}
  list0 = list1 + list2
  for (k, v) in list0:
    d.setdefault(k, 0)   # 设置字典元素初始值
    d[k] += v        # 对字典中的元素按关键字相加
  ret = list(d.items())    # 字典转换成list
  ret = sorted(ret)      # 对list排序
  return ret
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:\Program\Python>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)]

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
安装Python和pygame及相应的环境变量配置(图文教程)
Jun 04 Python
python中利用await关键字如何等待Future对象完成详解
Sep 07 Python
Python设计模式之门面模式简单示例
Jan 09 Python
Python编程scoketServer实现多线程同步实例代码
Jan 29 Python
使用apidocJs快速生成在线文档的实例讲解
Feb 07 Python
基于Python实现的微信好友数据分析
Feb 26 Python
Python创建数字列表的示例
Nov 28 Python
python装饰器相当于函数的调用方式
Dec 27 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
Jan 02 Python
Python利用逻辑回归分类实现模板
Feb 15 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
Apr 08 Python
Numpy ndarray 多维数组对象的使用
Feb 10 Python
Python利用QQ邮箱发送邮件的实现方法(分享)
Jun 09 #Python
老生常谈python的私有公有属性(必看篇)
Jun 09 #Python
Python 自动化表单提交实例代码
Jun 08 #Python
Python错误: SyntaxError: Non-ASCII character解决办法
Jun 08 #Python
Python实现网站注册验证码生成类
Jun 08 #Python
Python实现多线程抓取网页功能实例详解
Jun 08 #Python
Python中with及contextlib的用法详解
Jun 08 #Python
You might like
PHP 数字左侧自动补0
2008/03/31 PHP
PHP 获取目录下的图片并随机显示的代码
2009/12/28 PHP
php 面试碰到过的问题 在此做下记录
2011/06/09 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
Javascript中定义方法的另类写法(批量定义js对象的方法)
2011/02/25 Javascript
ASP.NET jQuery 实例4(复制TextBox的文本到本地剪贴板上)
2012/01/13 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
js删除数组元素、清空数组的简单方法(必看)
2016/07/27 Javascript
js实现文字超出部分用省略号代替实例代码
2016/09/01 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
2016/12/23 Javascript
js实现九宫格的随机颜色跳转
2017/02/19 Javascript
ES6新特性五:Set与Map的数据结构实例分析
2017/04/21 Javascript
JavaScript中使用Async实现异步控制
2017/08/15 Javascript
js es6系列教程 - 新的类语法实战选项卡(详解)
2017/09/02 Javascript
在原生不支持的旧环境中添加兼容的Object.keys实现方法
2017/09/11 Javascript
详解es6超好用的语法糖Decorator
2018/08/01 Javascript
vue router总结 $router和$route及router与 router与route区别
2019/07/05 Javascript
node crawler如何添加promise支持
2020/02/01 Javascript
[03:12]完美世界DOTA2联赛PWL DAY9集锦
2020/11/10 DOTA
Python使用chardet判断字符编码
2015/05/09 Python
Python自定义主从分布式架构实例分析
2016/09/19 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
python2.7使用plotly绘制本地散点图和折线图
2019/04/02 Python
python多线程与多进程及其区别详解
2019/08/08 Python
python2 对excel表格操作完整示例
2020/02/23 Python
HTML5之SVG 2D入门7—SVG元素的重用与引用
2013/01/30 HTML / CSS
英国床和浴室商场:Bed & Bath Emporium
2018/05/20 全球购物
大学生冰淇淋店商业计划书
2014/01/14 职场文书
给护士表扬信
2014/01/19 职场文书
大学生就业自我推荐信
2014/05/10 职场文书
学校领导班子对照检查材料
2014/09/24 职场文书
四风查摆剖析材料
2014/10/10 职场文书
2015教师年度考核评语
2015/03/25 职场文书
2016校本研修培训心得体会
2016/01/08 职场文书
python接口测试返回数据为字典取值方式
2022/02/12 Python