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中关于日期时间处理的问答集锦
Mar 08 Python
python实现通过shelve修改对象实例
Sep 26 Python
Python 实现购物商城,含有用户入口和商家入口的示例
Sep 15 Python
儿童学习python的一些小技巧
May 27 Python
对numpy中shape的深入理解
Jun 15 Python
python批量读取文件名并写入txt文件中
Sep 05 Python
python中的Elasticsearch操作汇总
Oct 30 Python
NumPy统计函数的实现方法
Jan 21 Python
Python 时间戳之获取整点凌晨时间戳的操作方法
Jan 28 Python
Django Haystack 全文检索与关键词高亮的实现
Feb 17 Python
keras中epoch,batch,loss,val_loss用法说明
Jul 02 Python
完美解决Pycharm中matplotlib画图中文乱码问题
Jan 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.MVC的模板标签系统(一)
2006/09/05 PHP
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
2013/06/19 PHP
php读取大文件示例分享(文件操作类)
2014/04/13 PHP
php使用pack处理二进制文件的方法
2014/07/03 PHP
php支持中文字符串分割的函数
2015/05/28 PHP
php结合redis高并发下发帖、发微博的实现方法
2016/12/15 PHP
Js+XML 操作
2006/09/20 Javascript
jquery提示 "object expected"的解决方法
2009/12/13 Javascript
用js判断输入是否为中文的函数
2014/03/10 Javascript
如何调试异步加载页面里包含的js文件
2014/10/30 Javascript
如何检测JavaScript的各种类型
2016/07/30 Javascript
js实现九宫格的随机颜色跳转
2017/02/19 Javascript
微信小程序 扎金花简单实例
2017/02/21 Javascript
JavaScript中清空数组的三种方式
2017/03/22 Javascript
纯js实现动态时间显示
2020/09/07 Javascript
vue: WebStorm设置快速编译运行的方法
2018/10/18 Javascript
Javascript实现秒表计时游戏
2020/05/27 Javascript
[03:12]完美世界DOTA2联赛PWL DAY9集锦
2020/11/10 DOTA
Python查询Mysql时返回字典结构的代码
2012/06/18 Python
python中os操作文件及文件路径实例汇总
2015/01/15 Python
PyMongo安装使用笔记
2015/04/27 Python
Python正则表达式匹配中文用法示例
2017/01/17 Python
在Linux命令行终端中使用python的简单方法(推荐)
2017/01/23 Python
Python只用40行代码编写的计算器实例
2017/05/10 Python
Python开发微信公众平台的方法详解【基于weixin-knife】
2017/07/08 Python
基于python socketserver框架全面解析
2017/09/21 Python
python实现redis三种cas事务操作
2017/12/19 Python
python接口自动化测试之接口数据依赖的实现方法
2019/04/26 Python
python切片的步进、添加、连接简单操作示例
2019/07/11 Python
tensorflow求导和梯度计算实例
2020/01/23 Python
英国高档时尚男装购物网站:MR PORTER
2016/08/09 全球购物
Giuseppe Zanotti美国官方网站:将鞋履视为高级时装般精心制作
2018/02/06 全球购物
全球性的女装店:storets
2019/06/12 全球购物
工商局所长四风自我剖析及整改措施
2014/10/26 职场文书
退税申请报告怎么写
2015/05/18 职场文书