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中内建函数的简单用法说明
May 05 Python
简单讲解Python编程中namedtuple类的用法
Jun 21 Python
简介Python的collections模块中defaultdict类型的用法
Jul 07 Python
Python中shutil模块的学习笔记教程
Apr 04 Python
关于Python如何避免循环导入问题详解
Sep 14 Python
Python爬虫实战:分析《战狼2》豆瓣影评
Mar 26 Python
python3 遍历删除特定后缀名文件的方法
Apr 23 Python
Python根据成绩分析系统浅析
Feb 11 Python
Python中的全局变量如何理解
Jun 04 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
Aug 07 Python
Python getsizeof()和getsize()区分详解
Nov 20 Python
Python+Tkinter制作专属图形化界面
Apr 01 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
DSP接收机前端设想
2021/03/02 无线电
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
2009/05/27 PHP
php将session放入memcached的设置方法
2014/02/14 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
2014/04/08 PHP
php通过ksort()函数给关联数组按照键排序的方法
2015/03/18 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
2017/06/11 PHP
PHP实现一个多功能购物网站的案例
2017/09/13 PHP
javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
2009/06/02 Javascript
js中复制行和删除行的操作实例
2013/06/25 Javascript
解析javascript系统错误:-1072896658的解决办法
2013/07/08 Javascript
JavaScript中property和attribute的区别详细介绍
2015/03/03 Javascript
js canvas仿支付宝芝麻信用分仪表盘
2016/11/16 Javascript
简单实现Vue的observer和watcher
2016/12/21 Javascript
基于JS实现bookstore静态页面的实例代码
2017/02/22 Javascript
如何使用bootstrap框架 bootstrap入门必看!
2017/04/13 Javascript
vue-scroller记录滚动位置的示例代码
2018/01/17 Javascript
Node.js Buffer用法解读
2018/05/18 Javascript
JS中判断字符串存在和非空的方法
2018/09/12 Javascript
vue组件之间的数据传递方法详解
2019/04/19 Javascript
JQuery常用选择器功能与用法实例分析
2019/12/23 jQuery
JavaScript this指向相关原理及实例解析
2020/07/10 Javascript
[06:15]2016国际邀请赛中国区预选赛单车采访:我顶WINGS
2016/06/27 DOTA
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
基于css3实现漂亮便签样式
2013/03/18 HTML / CSS
html5 div布局与table布局详解
2016/11/16 HTML / CSS
联想加拿大官方网站:Lenovo Canada
2018/04/05 全球购物
Cult Gaia官网:美国生活方式品牌
2019/08/16 全球购物
什么是java序列化,如何实现java序列化
2012/11/14 面试题
财务出纳员岗位职责
2013/11/26 职场文书
文明礼仪小标兵事迹
2014/01/12 职场文书
运动会演讲稿200字
2014/08/25 职场文书
转让协议书
2015/01/27 职场文书
公司员工培训管理制度
2015/08/04 职场文书
python爬虫之selenium库的安装及使用教程
2021/05/23 Python
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
2021/06/30 SQL Server