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数据结构之图深度优先和广度优先实例详解
Jul 08 Python
解析Python中的eval()、exec()及其相关函数
Dec 20 Python
Python 反转字符串(reverse)的方法小结
Feb 20 Python
PyQt5 多窗口连接实例
Jun 19 Python
Python 3.6 -win64环境安装PIL模块的教程
Jun 20 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
Jun 21 Python
Django 开发调试工具 Django-debug-toolbar使用详解
Jul 23 Python
Python字典生成式、集合生成式、生成器用法实例分析
Jan 07 Python
PyTorch实现AlexNet示例
Jan 14 Python
Python文件读写w+和r+区别解析
Mar 26 Python
解决keras使用cov1D函数的输入问题
Jun 29 Python
python 解决微分方程的操作(数值解法)
May 26 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+javascript实现二级级联菜单的制作
2008/05/06 PHP
php 函数使用方法与函数定义方法
2010/05/09 PHP
php GeoIP的使用教程
2011/03/09 PHP
php计算数组相同值出现次数的代码(array_count_values)
2015/01/20 PHP
php pdo oracle中文乱码的快速解决方法
2016/05/16 PHP
JS Map 和 List 的简单实现代码
2013/07/08 Javascript
让网页跳转到指定位置的jquery代码非书签
2013/09/06 Javascript
jQuery之字体大小的设置方法
2014/02/27 Javascript
谷歌地图打不开的解决办法
2014/08/07 Javascript
微信小程序开发(一) 微信登录流程详解
2017/01/11 Javascript
Vue学习笔记之表单输入控件绑定
2017/09/05 Javascript
javascript按钮禁用和启用的效果实例代码
2017/10/29 Javascript
Vue源码解读之Component组件注册的实现
2018/08/24 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
利用JavaScript将Excel转换为JSON示例代码
2019/06/14 Javascript
js实现验证码功能
2020/07/24 Javascript
[02:08]什么藏在DOTA2 TI9“小紫本”里?斧王历险记告诉你!
2019/05/17 DOTA
web.py获取上传文件名的正确方法
2014/08/26 Python
在Python的Django框架中加载模版的方法
2015/07/16 Python
Python实现Pig Latin小游戏实例代码
2018/02/02 Python
python使用PIL给图片添加文字生成海报示例
2018/08/17 Python
Django 通过JS实现ajax过程详解
2019/07/30 Python
Python 图像对比度增强的几种方法(小结)
2019/09/25 Python
wxpython实现按钮切换界面的方法
2019/11/19 Python
tensorflow 重置/清除计算图的实现
2020/01/19 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
2020/02/27 Python
Python各种扩展名区别点整理
2020/02/27 Python
Python调用shell命令常用方法(4种)
2020/05/11 Python
River Island美国官网:英国高街时尚品牌
2018/09/04 全球购物
Raffaello Network德国:意大利拉斐尔时尚购物网
2019/05/01 全球购物
100%法国制造的游戏和玩具:Les Jouets Français
2021/03/02 全球购物
酒店总经理欢迎词
2014/01/15 职场文书
《雪地里的小画家》教学反思
2014/02/22 职场文书
车辆年检委托书范本
2014/10/14 职场文书
教导处教学工作总结
2015/08/12 职场文书
python神经网络学习 使用Keras进行简单分类
2022/05/04 Python