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 Spyder界面无法打开的解决方法
Apr 27 Python
Django 使用logging打印日志的实例
Apr 28 Python
Python3爬虫学习入门教程
Dec 11 Python
Python设计模式之建造者模式实例详解
Jan 17 Python
Python数据报表之Excel操作模块用法分析
Mar 11 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
Jun 21 Python
python使用PIL和matplotlib获取图片像素点并合并解析
Sep 10 Python
Python pandas自定义函数的使用方法示例
Nov 20 Python
python3注册全局热键的实现
Mar 22 Python
Django Admin 上传文件到七牛云的示例代码
Jun 20 Python
使用Python解析Chrome浏览器书签的示例
Nov 13 Python
Python OpenCV中的numpy与图像类型转换操作
Dec 11 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 cookie中点号(句号)自动转为下划线问题
2014/10/21 PHP
php实现将任意进制数转换成10进制的方法
2015/04/17 PHP
PHP实现获取第一个中文首字母并进行排序的方法
2017/05/09 PHP
浏览器页面区域大小的js获取方法
2013/09/21 Javascript
原生js和jquery中有关透明度设置的相关问题
2014/01/08 Javascript
Script标签与访问HTML页面详解
2014/01/10 Javascript
JavaScript匿名函数用法分析
2015/02/13 Javascript
JavaScript正则表达式的分组匹配详解
2016/02/13 Javascript
JS HTML5拖拽上传图片预览
2016/07/18 Javascript
jQuery层次选择器用法示例
2016/09/09 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
JS实现重新加载当前页面
2016/11/29 Javascript
详解使用nodeJs安装Vue-cli
2017/05/17 NodeJs
mescroll.js上拉加载下拉刷新组件使用详解
2017/11/13 Javascript
JS和JQuery实现雪花飘落效果
2017/11/30 jQuery
antd Upload 文件上传的示例代码
2018/12/14 Javascript
vue中轮训器的使用
2019/01/27 Javascript
vue+element-ui+axios实现图片上传
2019/08/20 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
Vue中常用rules校验规则(实例代码)
2019/11/14 Javascript
原生js实现弹窗消息动画
2020/11/20 Javascript
[01:20:05]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第二场 2月5日
2021/03/11 DOTA
使用python加密自己的密码
2015/08/04 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
python中日志logging模块的性能及多进程详解
2017/07/18 Python
PyCharm在win10的64位系统安装实例
2017/11/26 Python
python中struct模块之字节型数据的处理方法
2019/08/27 Python
阿里巴巴英国:Alibaba英国
2019/12/11 全球购物
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
C和C++经典笔试题附答案解析
2014/08/18 面试题
资产评估专业大学生求职信
2013/09/29 职场文书
大学生应聘自荐信
2013/10/11 职场文书
预备党员入党自我评价范文
2014/03/10 职场文书
工厂车间标语
2014/06/19 职场文书
客户答谢会致辞
2015/01/20 职场文书
教你怎么用Python处理excel实现自动化办公
2021/04/30 Python