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中的Matplotlib模块入门教程
Apr 15 Python
Python实现的HTTP并发测试完整示例
Apr 23 Python
python爬虫爬取快手视频多线程下载功能
Feb 28 Python
BP神经网络原理及Python实现代码
Dec 18 Python
python正则表达式去除两个特殊字符间的内容方法
Dec 24 Python
Python常用爬虫代码总结方便查询
Feb 25 Python
使用PYTHON解析Wireshark的PCAP文件方法
Jul 23 Python
django 数据库 get_or_create函数返回值是tuple的问题
May 15 Python
Python sklearn中的.fit与.predict的用法说明
Jun 28 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
Aug 07 Python
详解python内置模块urllib
Sep 09 Python
PyTorch 中的傅里叶卷积实现示例
Dec 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下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
体育彩票排列三组选三算法分享
2014/03/07 PHP
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
2010/01/15 Javascript
javascript 闭包
2011/09/15 Javascript
js前台判断开始时间是否小于结束时间
2012/02/23 Javascript
JavaScript splice()方法详解
2020/09/22 Javascript
JavaScript中setFullYear()方法的使用详解
2015/06/11 Javascript
教你用十行node.js代码读取docx的文本
2017/03/08 Javascript
jQuery+Ajax实现用户名重名实时检测
2017/06/01 jQuery
vue-router单页面路由
2017/06/17 Javascript
vue-router命名路由和编程式路由传参讲解
2019/01/19 Javascript
微信小程序实现的五星评价功能示例
2019/04/25 Javascript
javascript实现移动端红包雨页面
2020/06/23 Javascript
[01:06:39]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第三局
2016/03/02 DOTA
python实现的DES加密算法和3DES加密算法实例
2015/06/03 Python
python PrettyTable模块的安装与简单应用
2019/01/11 Python
python第三方库学习笔记
2020/02/07 Python
windows支持哪个版本的python
2020/07/03 Python
Selenium alert 弹窗处理的示例代码
2020/08/06 Python
Python+pyftpdlib实现局域网文件互传
2020/08/24 Python
如何基于Django实现上下文章跳转
2020/09/16 Python
PyCharm 光标变成黑块的解决方式
2021/02/06 Python
西班牙创意礼品和小工具网上商店:Curiosite
2016/07/26 全球购物
英国汽车座椅和婴儿车购物网站:Uber Kids
2017/04/19 全球购物
trivago美国:全球最大的酒店价格比较网站
2018/01/18 全球购物
预防煤气中毒方案
2014/06/16 职场文书
食堂厨师岗位职责
2014/08/25 职场文书
英文慰问信范文
2015/03/24 职场文书
离婚案件原告代理词
2015/05/23 职场文书
消费者投诉书范文
2015/07/02 职场文书
《老人与海鸥》教学反思
2016/02/16 职场文书
Go Gin实现文件上传下载的示例代码
2021/04/02 Golang
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle
十大最强奥特曼武器:怪兽战斗仪在榜,第五奥特之父只使用过一次
2022/03/18 日漫
MySQL sql模式设置引起的问题
2022/05/15 MySQL
SQL Server使用PIVOT与unPIVOT实现行列转换
2022/05/25 SQL Server