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 相关文章推荐
Sanic框架蓝图用法实例分析
Jul 17 Python
简单谈谈python基本数据类型
Sep 26 Python
用Python画一个LinkinPark的logo代码实例
Sep 10 Python
Python常用库大全及简要说明
Jan 17 Python
python实现连连看游戏
Feb 14 Python
Python实现ATM系统
Feb 17 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
Jun 02 Python
浅谈django不使用restframework自定义接口与使用的区别
Jul 15 Python
基于python模拟TCP3次握手连接及发送数据
Nov 06 Python
python图片合成的示例
Nov 09 Python
python办公自动化之excel的操作
May 23 Python
Python实现学生管理系统(面向对象版)
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实现加减法验证码代码
2014/02/14 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
2014/04/29 PHP
ThinkPHP页面跳转success与error方法概述
2014/06/25 PHP
CMS中PHP判断系统是否已经安装的方法示例
2014/07/26 PHP
php格式化电话号码的方法
2015/04/24 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
2020/04/14 PHP
javascript fullscreen全屏实现代码
2009/04/09 Javascript
DOM节点删除函数removeChild()用法实例
2015/01/12 Javascript
Javascript基础教程之关键字和保留字汇总
2015/01/18 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
jQuery实现的放大镜效果示例
2016/09/13 Javascript
数组Array的排序sort方法
2017/02/17 Javascript
Angular2开发环境搭建教程之VS Code
2017/12/15 Javascript
jQuery实现表单动态添加与删除数据操作示例
2018/07/03 jQuery
详解写好JS条件语句的5条守则
2019/02/28 Javascript
laydate只显示时分 不显示秒的功能实现方法
2019/09/28 Javascript
es6 super关键字的理解与应用实例分析
2020/02/15 Javascript
vue 封装 Adminlte3组件的实现
2020/03/18 Javascript
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python中实现远程调用(RPC、RMI)简单例子
2014/04/28 Python
python通过socket实现多个连接并实现ssh功能详解
2017/11/08 Python
shell命令行,一键创建 python 模板文件脚本方法
2018/03/20 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
2018/05/30 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
设置jupyter中DataFrame的显示限制方式
2020/04/12 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
2021/01/19 Python
iframe与window.onload如何使用详解
2020/05/07 HTML / CSS
家庭睡衣和家庭用品:Little Blue House
2018/03/18 全球购物
加拿大在线隐形眼镜和眼镜店:VisionPros
2019/10/06 全球购物
入学申请自荐信范文
2014/02/26 职场文书
2014年双拥工作总结
2014/11/21 职场文书
工程部岗位职责
2015/02/10 职场文书
公司副总经理岗位职责
2015/04/08 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
MySQL外键约束(FOREIGN KEY)案例讲解
2021/08/23 MySQL