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生成随机密码的方法
Jun 16 Python
python+opencv实现动态物体识别
Jan 09 Python
Python实现在某个数组中查找一个值的算法示例
Jun 27 Python
Python 2.7中文显示与处理方法
Jul 16 Python
python实现在图片上画特定大小角度矩形框
Oct 24 Python
pandas DataFrame 删除重复的行的实现方法
Jan 29 Python
Django 外键的使用方法详解
Jul 19 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
Dec 10 Python
浅谈python3 构造函数和析构函数
Mar 12 Python
Django 多对多字段的更新和插入数据实例
Mar 31 Python
基于Python绘制美观动态圆环图、饼图
Jun 03 Python
结束运行python的方法
Jun 16 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.MVC的模板标签系统(二)
2006/09/05 PHP
谈谈新手如何学习PHP
2006/12/14 PHP
请php正则走开
2008/03/15 PHP
PHP-redis中文文档介绍
2013/02/07 PHP
深入Apache与Nginx的优缺点比较详解
2013/06/17 PHP
PHP中mb_convert_encoding与iconv函数的深入解析
2013/06/21 PHP
使用php实现快钱支付功能(涉及到接口)
2013/07/01 PHP
浅谈discuz密码加密的方式
2014/05/22 PHP
yii实现图片上传及缩略图生成的方法
2014/12/04 PHP
PHP SESSION的增加、删除、修改、查看操作
2015/03/20 PHP
整理php防注入和XSS攻击通用过滤
2015/09/13 PHP
PHP文件上传类实例详解
2016/04/08 PHP
jQuery的强大选择器小结
2009/12/27 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
JavaScript中的立即执行函数表达式介绍
2015/03/15 Javascript
简介AngularJS的HTML DOM支持情况
2015/06/17 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
2015/12/15 Javascript
HTML5 canvas 9绘制图片实例详解
2016/09/06 Javascript
JavaScript对象的特性与实践应用深入详解
2018/12/30 Javascript
一文快速详解前端框架 Vue 最强大的功能
2019/05/21 Javascript
Swiper.js实现移动端元素左右滑动
2019/09/08 Javascript
微信小程序错误this.setData报错及解决过程
2019/09/18 Javascript
vue实现修改图片后实时更新
2019/11/14 Javascript
vue简单封装axios插件和接口的统一管理操作示例
2020/02/02 Javascript
Python2.7 实现引入自己写的类方法
2018/04/29 Python
pycharm中成功运行图片的配置教程
2018/10/28 Python
Appium Python自动化测试之环境搭建的步骤
2019/01/23 Python
Python实现蒙特卡洛算法小实验过程详解
2019/07/12 Python
Python控制台输出时刷新当前行内容而不是输出新行的实现
2020/02/21 Python
Python绘制动态水球图过程详解
2020/06/03 Python
Python 测试框架unittest和pytest的优劣
2020/09/26 Python
CSS3属性使网站设计增强同时不消弱可用性
2009/08/29 HTML / CSS
DNA基因检测和分析:23andMe
2019/05/01 全球购物
Jones Bootmaker官网:优质靴子和鞋子在线
2020/11/30 全球购物
电影红河谷观后感
2015/06/11 职场文书
最新的离婚协议书范本!
2019/07/02 职场文书