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 Requests 基础入门
Apr 07 Python
Python对list列表结构中的值进行去重的方法总结
May 07 Python
Python开发微信公众平台的方法详解【基于weixin-knife】
Jul 08 Python
pip安装Python库时遇到的问题及解决方法
Nov 23 Python
使用python3+xlrd解析Excel的实例
May 04 Python
Windows下安装Scrapy
Oct 17 Python
对python3 sort sorted 函数的应用详解
Jun 27 Python
python智联招聘爬虫并导入到excel代码实例
Sep 09 Python
零基础小白多久能学会python
Jun 22 Python
python 使用多线程创建一个Buffer缓存器的实现思路
Jul 02 Python
使用Python的开发框架Brownie部署以太坊智能合约
May 28 Python
分位数回归模型quantile regeression应用详解及示例教程
Nov 02 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 is_dir() 判断给定文件名是否是一个目录
2010/05/10 PHP
PHP数组实例总结与说明
2011/08/23 PHP
IIS安装Apache伪静态插件的具体操作图文
2013/07/01 PHP
淘宝ip地址查询类分享(利用淘宝ip库)
2014/01/07 PHP
举例详解PHP脚本的测试方法
2015/08/05 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
2016/05/06 PHP
javascript中自定义对象的属性方法分享
2013/07/12 Javascript
json实现前后台的相互传值详解
2015/01/05 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
JavaScript生成二维码图片小结
2015/12/27 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
2016/05/23 Javascript
基于AngularJS前端云组件最佳实践
2016/10/20 Javascript
浅谈Angular路由守卫
2017/08/26 Javascript
JS实现的文字间歇循环滚动效果完整示例
2018/02/13 Javascript
Bootbox将后台JSON数据填充Form表单的实例代码
2018/09/10 Javascript
微信小程序发布新版本时自动提示用户更新的方法
2019/06/07 Javascript
微信小程序设置滚动条过程详解
2019/07/25 Javascript
Layer.js实现表格溢出内容省略号显示,悬停显示全部的方法
2019/09/16 Javascript
vue 实现 rem 布局或vw 布局的方法
2019/11/13 Javascript
[01:04:06]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第一局
2016/02/26 DOTA
使用python检测手机QQ在线状态的脚本代码
2013/02/10 Python
python通过ftplib登录到ftp服务器的方法
2015/05/08 Python
Python 数据结构之旋转链表
2017/02/25 Python
Python实现的微信好友数据分析功能示例
2018/06/21 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
Numpy 中的矩阵求逆实例
2019/08/26 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
selenium中get_cookies()和add_cookie()的用法详解
2020/01/06 Python
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
TripAdvisor日本:全球领先的旅游网站
2019/02/14 全球购物
美国精油公司:Plant Therapy
2019/05/17 全球购物
Java面试题汇总
2015/12/06 面试题
信息服务专业毕业生求职信
2014/03/02 职场文书
讲座开场白台词和结束语
2015/05/29 职场文书
css position fixed 左右双定位的实现代码
2021/04/29 HTML / CSS