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 相关文章推荐
python3制作捧腹网段子页爬虫
Feb 12 Python
django框架如何集成celery进行开发
May 24 Python
Windows平台Python连接sqlite3数据库的方法分析
Jul 12 Python
Python优先队列实现方法示例
Sep 21 Python
取numpy数组的某几行某几列方法
Apr 03 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
Nov 06 Python
解决django前后端分离csrf验证的问题
Feb 03 Python
Python使用POP3和SMTP协议收发邮件的示例代码
Apr 16 Python
Django ORM 自定义 char 类型字段解析
Aug 09 Python
python tkinter之顶层菜单、弹出菜单实例
Mar 04 Python
python Canny边缘检测算法的实现
Apr 24 Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
Dec 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
Laravel 5框架学习之Blade 简介
2015/04/08 PHP
利用PHP如何实现Socket服务器
2015/09/23 PHP
PHP的时间戳与具体时间转化的简单实现
2016/06/13 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
点图片上一页下一页翻页效果
2008/07/09 Javascript
javascript 写类方式之六
2009/07/05 Javascript
Javascript UrlDecode函数代码
2010/01/09 Javascript
Javascript 获取链接(url)参数的方法[正则与截取字符串]
2010/02/09 Javascript
JavaScript 格式字符串的应用
2010/03/29 Javascript
基于jquery & json的省市区联动代码
2012/06/26 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
2015/02/28 Javascript
jQuery树形下拉菜单特效代码分享
2015/08/15 Javascript
不得不看之JavaScript构造函数及new运算符
2017/08/21 Javascript
解决vue.js提交数组时出现数组下标的问题
2019/11/05 Javascript
vue实现简单跑马灯效果
2020/05/25 Javascript
浅析JavaScript预编译和暗示全局变量
2020/09/03 Javascript
原生js实现弹窗消息动画
2020/11/20 Javascript
[04:00]DOTA2解说界神雕侠侣 CJ第四天谷子现场过生日
2013/07/30 DOTA
[03:17]DOTA2英雄基础教程 剧毒术士
2013/12/12 DOTA
[01:25:38]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第一场 1月19日
2021/03/11 DOTA
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
python 获取文件下所有文件或目录os.walk()的实例
2018/04/23 Python
如何在django里上传csv文件并进行入库处理的方法
2019/01/02 Python
python django 原生sql 获取数据的例子
2019/08/14 Python
使用python 对验证码图片进行降噪处理
2019/12/18 Python
如何更改 pandas dataframe 中两列的位置
2019/12/27 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
MxNet预训练模型到Pytorch模型的转换方式
2020/05/25 Python
pycharm激活方法到2099年(激活流程)
2020/09/22 Python
英国领先的珍珠首饰品牌:Orchira
2016/09/11 全球购物
微软马来西亚官方网站:Microsoft马来西亚
2019/11/22 全球购物
JavaScript实现前端网页版倒计时
2021/03/24 Javascript
医学类个人求职信范文
2014/02/05 职场文书
运动会入场词100字
2014/02/06 职场文书
创先争优宣传标语
2014/10/08 职场文书
浅谈Golang 嵌套 interface 的赋值问题
2021/04/29 Golang