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对IP进行转换的一些操作技巧小结
Nov 09 Python
python编程羊车门问题代码示例
Oct 25 Python
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
Nov 08 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
Oct 18 Python
Python求离散序列导数的示例
Jul 10 Python
python的time模块和datetime模块实例解析
Nov 29 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
Feb 28 Python
如何使用pandas读取txt文件中指定的列(有无标题)
Mar 05 Python
Python魔术方法专题
Jun 19 Python
keras输出预测值和真实值方式
Jun 27 Python
python源文件的字符编码知识点详解
Mar 04 Python
FP-growth算法发现频繁项集——发现频繁项集
Jun 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 header()函数使用说明
2008/07/10 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
2015/03/26 PHP
php实现插入排序
2015/03/29 PHP
浅谈PHP安全防护之Web攻击
2017/01/03 PHP
JQuery 学习笔记 选择器之二
2009/07/23 Javascript
jQuery获得IE版本不准确webbrowser的解决方法
2014/02/23 Javascript
在JS数组特定索引处指定位置插入元素的技巧
2014/08/24 Javascript
jQuery中wrapAll()方法用法实例
2015/01/16 Javascript
JavaScript函数使用的基本教程
2015/06/04 Javascript
解决js函数闭包内存泄露问题的办法
2016/01/25 Javascript
详解vue渲染从后台获取的json数据
2017/07/06 Javascript
纯js实现页面返回顶部的动画(超简单)
2017/08/10 Javascript
node.js多个异步过程中判断执行是否完成的解决方案
2017/12/10 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
2020/01/16 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
python 判断是否为正小数和正整数的实例
2017/07/23 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
2018/02/01 Python
python事件驱动event实现详解
2018/11/21 Python
10款最好的Python开发编辑器
2019/07/03 Python
Django框架表单操作实例分析
2019/11/04 Python
Django中提示消息messages的设置方式
2019/11/15 Python
五种Python转义表示法
2020/11/27 Python
Django REST Framework 分页(Pagination)详解
2020/11/30 Python
python 解决函数返回return的问题
2020/12/05 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
2021/02/22 Python
如何利用CSS3制作3D效果文字具体实现样式
2013/05/02 HTML / CSS
CSS3过渡transition效果实例介绍
2016/05/03 HTML / CSS
学校百日安全生产活动总结
2014/07/05 职场文书
2015年组织部工作总结
2015/04/03 职场文书
2015年医院后勤工作总结
2015/05/20 职场文书
抢劫罪辩护词
2015/05/21 职场文书
小学六一主持词开场白
2015/05/28 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书
详解nginx.conf 中 root 目录设置问题
2021/04/01 Servers
python-opencv 中值滤波{cv2.medianBlur(src, ksize)}的用法
2021/06/05 Python
python图片灰度化处理的几种方法
2021/06/23 Python