炫技:拼接列表、破碎二维数组——Python sum()函数隐藏技能花式玩法

news2024/12/23 5:44:39

【学习的细节是欢悦的历程】


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


  • My CSDN主页、My HOT博、My Python 学习个人备忘录
  • 好文力荐、 老齐教室
等风来,不如追风去……


sum()函数隐藏技能花式玩法——
炫技:拼接列表&破碎二维数组
(我让Python代码“异想天开”)


  Python内建函数sum(),大家再熟悉不过了吧,没少用她序列求和吧。😄明白易读,语句简洁。

Python 3.11.0 (main, Oct 29 2022, 21:50:32) [Clang 14.0.6 (https://android.googlesource.com/toolchain/llvm-project 4c603efb0 on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> sum((1, 2, 3, 4, 5, 6, 7, 8, 9))
45
>>> sum([1, 2, 3, 4, 5, 6, 7, 8, 9])
45
>>> sum({1, 2, 3, 4, 5, 6, 7, 8, 9})
45
>>> sum(range(10))
45
>>>
>>> c = dict.fromkeys((1, 2, 3, 4, 5, 6, 7, 8, 9))>>> c
{1: None, 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None}
>>> sum(c)
45
>>> a, b, c = 4, 5.6, 7.0
>>> sum((a, b, c))
16.6
>>>

  我们一般用sum()对列表中的数值元素求和,殊不知她对元素是数值型对象的序列都可以求和。如元组、集合、字典的key以及变量序列。

  但,您有没有想过,sum()还可以拉平二维数组,且可以对字符串为元素的列表操作,且不限二级序列长度,只要二级全是序列。

>>> nums = [[1, 2, 3], [4, 5, 6], [7, 8], [9]]
>>> sum(nums, [])
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>
>>> d = [[1, 2, 3], [4, 5, 6], [7, 8], [9], ['f', 56]]
>>> sum(d, [])
[1, 2, 3, 4, 5, 6, 7, 8, 9, 'f', 56]
>>>
>>> chars = [["I'm", ' ', 'a'], [' '], ['old' 'man', '.'], ['My name'], [' is '], ['dream', ' ', 'elf', '.']]
>>> sum(chars, [])
["I'm", ' ', 'a', ' ', 'old man', '.', 'My name', ' is ', 'dream', ' ', 'elf', '.']
>>> ''.join(sum(chars, []))
"I'm a old man.My name is dream elf."
>>>

  惊奇不?迷茫不?
感到惊奇和迷豆对啰!因为我等凡人,根本想不到把sum()用于这样子的场景。👀直到我读到大师的代码,顿时惊呆——还有这样子的操控!!!
  一顿惊诧过后,喜欢钻牛🐮角尖的我(我73的,属相牛🐂),开启了“寻根”历程……


回页首

>>> help(sum)
>>>
Help on built-in function sum in module builtins:

sum(iterable, /, start=0)
    Return the sum of a 'start' value (default: 0) plus an iterable of numbers

    When the iterable is empty, return the start value.
    This function is intended specifically for use with numeric values and may
    reject non-numeric types.
(END)

语法

sum(iterable, /, start=0)

  • 1、返回start(start的值默认为0)的值加上iterable的数值元素总和
  • 2.、当iterable为空([ ],( ),{ }),返回start的值
  • 3、此函数专门用于数值型对象,拒绝为非数值型对象服务

  此三条乃sum()的常规用法,其实她还有第四条——


回页首

  • 4.、连接列表,就是您前面看到的炫酷玩法。

  正是这“连接列表”的第四条隐藏技能,可以换着花样玩儿花式——

  • 奇异数组求和
>>> nums = [
... [1, 2, 3, 4],
... [5, 6, 7, 8],
... [9, 10, 11, 13]
... ,[
...
...
... ]
... ,
... [14, 15, 16]]
>>> nums
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 13], [], [14, 15, 16]]
>>> sum(sum(nums, []))
124
>>> sum(range(17)) - 12
124
>>>
  • 矩阵求和
>>> nums = [
... [1, 2, 3],
... [4, 5, 6],
... [7, 8, 9]
... ]
>>>
>>> sum(sum(nums, []))
45
>>> sum(range(10))
45
>>>
  • 拼接字符串
>>> lis = [[''], ['城市', '新增本土', '无症状', ' 现有确诊', '高风险区'], ['重庆', '164', '7669', '2427', '3759'], ['北京', '1282', '3240', '6081', '3163'], ['广州广东', '1236', '6454', '20692', '974'], ['郑州河南', '130', '486', '3085', '1291'], ['']]
>>>print(','.join(sum(lis, [])))
,城市,新增本土,无症状,现有确诊,高风险区,重庆,164766924273759,北京,1282324060813163,广州广东,1236645420692974,郑州河南,13048630851291>>>

回页首

__上一篇:__ 代码实现“约瑟夫环”百科词条中的例子故事

__下一篇:__ 

我的HOT博:

    • Hot:个人信息提取(1402阅读)
    • Hot:生成100个随机正整数(1453阅读)
    • 给定字符串提取姓名(字符串、list、re“零宽断言”)(1051阅读)
    • 我的 Python.color() (Python 色彩打印控制)(1463阅读)
    • python清屏(2206阅读)
    • 回车符、换行符和回车换行符(2165阅读)
    • Linux 脚本文件第一行的特殊注释符(井号和感叹号组合)的含义(1379阅读)
    • pandas 数据类型之 Series(1403阅读)
    • 聊天消息敏感词屏蔽系统(字符串替换 str.replace(str1, *) )(1500阅读)
    • 练习:银行复利计算(用 for 循环解一道初中小题)(1408阅读)
    • pandas 数据类型之 DataFrame(3007阅读)
    • :班里有人和我同生日难吗?(蒙特卡洛随机模拟法)(2254阅读)
    • Python字符串居中显示(3407阅读)
    • 练习:求偶数和、阈值分割和求差( list 对象的两个基础小题)(1701阅读)
    • 用 pandas 解一道小题(2056阅读)
    • 可迭代对象和四个函数(1083阅读)
    • “快乐数”判断(1286阅读)
    • 罗马数字转换器(构造元素取模)(2324阅读)
    • Hot:罗马数字(转换器|罗生成器)(5140阅读)
    • Hot:让QQ群昵称色变的代码(42882阅读)
    • Hot:斐波那契数列(递归| for )(4100阅读)
    • 柱状图中最大矩形(1688阅读)
    • 排序数组元素的重复起止(1286阅读)
    • 电话拨号键盘字母组合(1460阅读)
    • 密码强度检测器(2175阅读)
    • 求列表平衡点(1875阅读)
    • Hot: 字符串统计(4347阅读)
    • Hot:尼姆游戏(聪明版首发)(3532阅读)尼姆游戏(优化版)(1242阅读)
    • 推荐条件 点阅破千

      回目录


      老齐漫画头像

      精品文章:

      • 好文力荐:《python 完全自学教程》齐伟书稿免费连载
      • OPP三大特性:封装中的property
      • 通过内置对象理解python'
      • 正则表达式
      • python中“*”的作用
      • Python 完全自学手册
      • 海象运算符
      • Python中的 `!=`与`is not`不同
      • 学习编程的正确方法

      来源:老齐教室


      回目录

      Python 入门指南【Python 3.6.3】


      好文力荐:

      • 全栈领域优质创作者——寒佬(还是国内某高校学生)好文:《非技术文—关于英语和如何正确的提问》,“英语”和“会提问”是学习的两大利器。

      • 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛

      • 靠谱程序员的好习惯


      CSDN实用技巧博文:

      • 8个好用到爆的Python实用技巧
      • python忽略警告
      • Python代码编写规范
      • Python的docstring规范(说明文档的规范写法)

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/51428.html

    如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

    相关文章

    【k8s金牌知识】k8s升级攻略

    学习内容: 提示:不同版本升级略有差异,详见官网,本例是以Ubuntu为例 官方网址:https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/ 1、 k8s升级注意事项 (1&#xf…

    阿里云产品有哪些?阿里云产品种类整理汇总

    阿里云是全球领先的云计算及人工智能科技公司,提供云服务器、云数据库、云安全、云存储、企业应用及行业解决方案服务。那么阿里云产品有哪些?本文为大家介绍下阿里云产品方案及阿里云有哪些热门云产品?阿里云主要产品及功能介绍,阿里云产品分为6大分类…

    Flink同步Kafka数据到ClickHouse分布式表

    公众号文章都在个人博客网站:https://www.ikeguang.com/ 同步,欢迎访问。业务需要一种OLAP引擎,可以做到实时写入存储和查询计算功能,提供高效、稳健的实时数据服务,最终决定ClickHouse什么是ClickHouse?Cl…

    [附源码]JAVA毕业设计高校疫情管理(系统+LW)

    [附源码]JAVA毕业设计高校疫情管理(系统LW) 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术&…

    [附源码]计算机毕业设计springboot社区疫情防控信息管理系统

    项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

    Android OpenGL ES 学习(五) -- 渐变色

    OpenGL 学习教程 Android OpenGL ES 学习(一) – 基本概念 Android OpenGL ES 学习(二) – 图形渲染管线和GLSL Android OpenGL ES 学习(三) – 绘制平面图形 Android OpenGL ES 学习(四) – 正交投屏 Android OpenGL ES 学习(五) – 渐变色 代码工程地址: https://…

    【实习之velocity 三 Vtl-引入资源】

    文章目录一、#include1.作用:引入外部资源,引入的资源不会被引擎所解析2.语法:#include(resource)二、#parse作用:引入的外部资源,引入的资源将被引擎所解析语法:#parse(resource)三、define作用:定义重用模块(不带参数)语法:四、evaluate作用:动态计算,动态计算可以…

    学习笔记:内存四区

    内存分区模型 1内存分区模型 C程序在执行I将内存大方向划分为4个区域 ●代码区:存放函数体的二进制代码,由操作系统进行管理的 ●全局区:存放全局变量和静态变量以及常量 ●栈区:由编译器自动分配释放存放函数的参数值局部变量等 ●堆区:由程序员分配和释放若程序员…

    【WSN布局】基于LICHTENBERG算的多目标传感器选择和放置优化问题研究附matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

    如何改变胆小怕事的性格?

    胆小怕事 就是指一个人做事总是十分胆怯,畏畏缩缩,举手投足也不够大气,经常要看别人的脸色,害怕麻烦上身,对强势的人也会显得唯唯诺诺,战战兢兢。胆小怕事 是某种心理问题的表现,或者说性格缺陷…

    基于Q-learning方法的地铁列车时刻表重新调度

    文章信息《Metro Train Timetable Rescheduling Based on Q-learning Approach》是发表在2020 IEEE 23rd International Conference on Intelligent Transportation Systems (ITSC)上的一篇文章。摘要在地铁系统中,不可预测的干扰会影响正常运行,给乘客带…

    什么是短网址?如何调用接口生成短地址?

    随着网络应用的深入和普及,网址资源越来越少了,长尾网址也派上用场了,只是网址太长不方便识别与记录。因此,就有了短网址替代长网址的技术接口。 随着SEO的重要性越来越明显,在推广的时候如果把网页链接缩短可以获得更…

    【wireshark】如何获取一个设备的IP地址

    问题 开发中往往会出现无法知道设备正确的IP地址,从而无法连接到设备。 解决方式: 使用软件工具wireshark来获取设备IP地址。 可以实现不同网段捕获设备IP 具体流程: 1. 下载wireshark抓包程序 https://www.wireshark.org/download.htm…

    MySQL日志(undo log 和 redo log 实现事务的原子性/持久性/一致性)

    日志的重要性 日志绝对是数据库的核心. 持久化的日志记录了各种重要的信息.数据的恢复需要依赖日志。 慢查询sql语句需要用到慢查询日志。以及错误日志中保存着mysqld数据库服务端在启动过程中发生的重大错误信息... 数据库重要组成 本质上来说是一个文件系统 (两大重要组…

    PHP+MySQL基于thinkphp的企业信息销售展示系统的设计

    公司企业网站,是一个供为企业推广的平台,是完全的,高速的,开放的,其核心思想是提供一个以自然语言为主的用户界面,让用户能够更好的刚加方便快捷的管理物流信息的一个渠道和平台。本课题的开发工具可以使用PHP开发语言和MySQL数据进行的开发。 该系统的基本功能包括用户注册登录…

    JAVA 设计模式篇

    JAVA 设计模式篇1、UML类图2、设计原则2.1、开闭原则2.2、里氏代换原则2.3、依赖倒转原则2.4、接口隔离原则2.5、迪米特法则2.6、合成复用原则3、设计模式3.1、单例模式3.1.1、单例模式实现——饿汉式3.1.1.1、静态变量实现3.1.1.2、静态方法实现3.1.1.3、枚举方式3.1.2、单例模…

    GRPC远程调用

    FAQ | gRPC1. gRPC原理 FAQ | gRPC Asynchronous-API tutorial | C | gRPC 1.1 什么是RPC RPC 即远程过程调用协议(Remote Procedure Call Protocol),可以让我们像调用本地对象一样发起远程调用。RPC 凭借其强大的治理功能,成…

    Linux 中的文件简单说明

    Linux 中的文件简单说明 作者:Grey 原文地址: 博客园:Linux 中的文件简单说明 CSDN:Linux 中的文件简单说明 说明 本文基于 CentOS 7 根目录(/)下文件夹主要作用 [rootlinux /]# ll / total 16 lrwxrwxrwx. 1 root root…

    VMOS虚拟机开源,游戏安全面临新挑战

    相信大家对虚拟机并不陌生,一台设备可以模拟出多个操作系统,完美解决了不同场景下设备限制问题,还节约了购买软硬件设备的成本,为工作和生活提供了不少便利,得到了广泛的应用。 而虚拟机技术却被游戏黑灰产所利用&…

    全球约有 150 亿台设备在运行 Java,收费后还能用吗?

    据估算,全球约有 150 亿台设备在运行 Java™。约900万 Java 程序员.... https://www.oracle.com/java/technologies/downloads/archive 一、Java8及之前的版本均免费 我们可以看到上图中绿色的部分均是免费版本大家可以随便下载随便使用。 二、最后的免费版本 jd…