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进程的信号通讯
Apr 09 Python
python操作oracle的完整教程分享
Jan 30 Python
python selenium 对浏览器标签页进行关闭和切换的方法
May 21 Python
python调用百度语音REST API
Aug 30 Python
对Python中list的倒序索引和切片实例讲解
Nov 15 Python
详解python之heapq模块及排序操作
Apr 04 Python
wxPython多个窗口的基本结构
Nov 19 Python
python抓取多种类型的页面方法实例
Nov 20 Python
Python跑循环时内存泄露的解决方法
Jan 13 Python
django之导入并执行自定义的函数模块图解
Apr 01 Python
Python 分布式缓存之Reids数据类型操作详解
Jun 24 Python
使用numpngw和matplotlib生成png动画的示例代码
Jan 24 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中array_unshift()修改数组key注意事项分析
2016/05/16 PHP
Yii 2.0中场景的使用教程
2017/06/02 PHP
40款非常有用的 jQuery 插件推荐(系列一)
2011/12/21 Javascript
精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
2012/08/22 Javascript
JS小功能(button选择颜色)简单实例
2013/11/29 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
2014/10/11 Javascript
javascript模拟C#格式化字符串
2015/08/26 Javascript
jQuery实现为控件添加水印文字效果(附源码)
2015/12/02 Javascript
jQuery中on绑定事件后引发的事件冒泡问题如何解决
2016/05/25 Javascript
原生Javascript和jQuery做轮播图简单例子
2016/10/11 Javascript
微信小程序 网络API Websocket详解
2016/11/09 Javascript
详解JavaScript的内置对象
2016/12/07 Javascript
利用Js+Css实现折纸动态导航效果实例源码
2017/01/25 Javascript
如何编写jquery插件
2017/03/29 jQuery
js模拟百度模糊搜索的实例
2017/08/04 Javascript
Vue组件之全局组件与局部组件的使用详解
2017/10/09 Javascript
nodejs前端模板引擎swig入门详解
2018/05/15 NodeJs
vue中使用element-ui进行表单验证的实例代码
2018/06/22 Javascript
Vue.js样式动态绑定实现小结
2019/01/24 Javascript
python实现巡检系统(solaris)示例
2014/04/02 Python
Python3基础之基本运算符概述
2014/08/13 Python
使用Python中PDB模块中的命令来调试Python代码的教程
2015/03/30 Python
Python使用ntplib库同步校准当地时间的方法
2016/07/02 Python
python微信跳一跳系列之自动计算跳一跳距离
2018/02/26 Python
Python序列循环移位的3种方法推荐
2018/04/09 Python
详解python中的线程与线程池
2019/05/10 Python
Python文件夹批处理操作代码实例
2020/07/21 Python
CSS3实现线性渐变用法示例代码详解
2020/08/07 HTML / CSS
美国全球旅游运营商:Pacific Holidays
2018/06/18 全球购物
一名毕业生的自我鉴定
2013/12/04 职场文书
业务部门经理岗位职责
2014/02/23 职场文书
国际贸易实训报告
2014/11/05 职场文书
律政俏佳人观后感
2015/06/09 职场文书
老人节主持词
2015/07/04 职场文书
Linux安装Nginx步骤详解
2021/03/31 Servers
微信小程序 WeUI扩展组件库的入门教程
2022/04/21 Javascript