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中__init__和__new__的区别详解
Jul 09 Python
Python中的进程分支fork和exec详解
Apr 11 Python
python下MySQLdb用法实例分析
Jun 08 Python
python Crypto模块的安装与使用方法
Dec 21 Python
Linux CentOS Python开发环境搭建教程
Nov 28 Python
Python对象与引用的介绍
Jan 24 Python
python删除列表元素的三种方法(remove,pop,del)
Jul 22 Python
对python中url参数编码与解码的实例详解
Jul 25 Python
PyTorch中Tensor的维度变换实现
Aug 18 Python
win10下opencv-python特定版本手动安装与pip自动安装教程
Mar 05 Python
Python基于数列实现购物车程序过程详解
Jun 09 Python
详解python的异常捕获
Mar 03 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
Yii2框架控制器、路由、Url生成操作示例
2019/05/27 PHP
javascript入门·对象属性方法大总结
2007/10/01 Javascript
jQuery timers计时器简单应用说明
2010/10/28 Javascript
在chrome浏览器中,防止input[text]和textarea在聚焦时出现黄色边框的解决方法
2011/05/24 Javascript
JQury slideToggle闪烁问题及解决办法
2011/07/05 Javascript
js实现幻灯片效果(基于jquery插件)
2013/11/05 Javascript
JS实现三个层重叠点击互相切换的方法
2015/10/06 Javascript
JS中IP地址与整数相互转换的实现代码
2017/04/10 Javascript
AngularJS 霸道的过滤器小结
2017/04/26 Javascript
详解angularjs 学习之 scope作用域
2018/01/15 Javascript
实用Javascript调试技巧分享(小结)
2019/06/18 Javascript
vue element-ui实现input输入框金额数字添加千分位
2019/12/29 Javascript
JavaScript语句错误throw、try及catch实例解析
2020/08/18 Javascript
vue修改Element的el-table样式的4种方法
2020/09/17 Javascript
微信小程序实现签到弹窗动画
2020/09/21 Javascript
[02:12]2019完美世界全国高校联赛(春季赛)报名开启
2019/03/01 DOTA
python连接字符串的方法小结
2015/07/13 Python
Python面向对象基础入门之设置对象属性
2018/12/11 Python
pytorch中的transforms模块实例详解
2019/12/31 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
2020/02/25 Python
python爬虫使用正则爬取网站的实现
2020/08/03 Python
Python数据库封装实现代码示例解析
2020/09/05 Python
Django Admin后台模型列表页面如何添加自定义操作按钮
2020/11/11 Python
Html5让容器充满屏幕高度或自适应剩余高度的布局实现
2020/05/14 HTML / CSS
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
英国名牌服装购物网站:OD’s Designer
2019/09/02 全球购物
旅游项目开发策划书
2014/01/18 职场文书
银行员工辞职信范文
2014/01/20 职场文书
幼儿园老师辞职信
2014/01/20 职场文书
一份文言文检讨书
2014/09/13 职场文书
党员干部廉政承诺书
2015/04/28 职场文书
小学大队委竞选口号
2015/12/25 职场文书
五年级作文之学校的四季
2019/12/05 职场文书
python爬不同图片分别保存在不同文件夹中的实现
2021/04/02 Python
Springboot-cli 开发脚手架,权限认证,附demo演示
2022/04/28 Java/Android
使用JS前端技术实现静态图片局部流动效果
2022/08/05 Javascript