码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 炫技:拼接列表、破碎二维数组——Python sum()函数隐藏技能花式玩法


    sum()函数(Python内建)我们都用得不少,但她还有隐藏特技!您可知晓?👀


    (本文获得CSDN质量评分【91】)

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

    • Python 官网:https://www.python.org/

    • Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……


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


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


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


    本文质量分:

    【 91 】
    本文地址: https://blog.csdn.net/m0_57158496/article/details/128125260

    CSDN质量分查询入口:http://www.csdn.net/qc


    目 录

    • ◆ Python内建函数sum()
      • 1、一般用法展示
      • 2、奇妙用法展示
      • 3、help(sum)获取帮助文档
      • 4、语法
      • 5、连接列表
        • 5.1 每行长度不等二维数组求和
        • 5.2 矩阵求和
        • 5.3 拼接字符串


    ◆ Python内建函数sum()

    1、一般用法展示

      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
    >>>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    2、奇妙用法展示

      我们一般用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."
    >>>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

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


    回页目录

    3、help(sum)获取帮助文档

    >>> help(sum)
    >>>
    
    • 1
    • 2
    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    4、语法

    sum(iterable, /, start=0)

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

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


    回页目录

    5、连接列表

    就是您前面看到的炫酷玩法

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

    5.1 每行长度不等二维数组求和

    >>> 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
    >>>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    5.2 矩阵求和

    >>> nums = [
    ... [1, 2, 3],
    ... [4, 5, 6],
    ... [7, 8, 9]
    ... ]
    >>>
    >>> sum(sum(nums, []))
    45
    >>> sum(range(10))
    45
    >>>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    5.3 拼接字符串

    >>> lis = [[''], ['城市', '新增本土', '无症状', ' 现有确诊', '高风险区'], ['重庆', '164', '7669', '2427', '3759'], ['北京', '1282', '3240', '6081', '3163'], ['广州广东', '1236', '6454', '20692', '974'], ['郑州河南', '130', '486', '3085', '1291'], ['']]
    >>>print(','.join(sum(lis, [])))
    ,城市,新增本土,无症状,现有确诊,高风险区,重庆,164,7669,2427,3759,北京,1282,3240,6081,3163,广州广东,1236,6454,20692,974,郑州河南,130,486,3085,1291,
    >>>
    
    • 1
    • 2
    • 3
    • 4

    回页目录

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

    __下一篇:__ 提取字符串单引号内的字符——Python for循环代码“异想天开”

    我的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 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费🆓下载。)
        • OPP三大特性:封装中的property
        • 通过内置对象理解python'
        • 正则表达式
        • python中“*”的作用
        • Python 完全自学手册
        • 海象运算符
        • Python中的 `!=`与`is not`不同
        • 学习编程的正确方法

        来源:老齐教室


        回页首

        ◆ Python 入门指南【Python 3.6.3】


        好文力荐:

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

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

        • 靠谱程序员的好习惯


        CSDN实用技巧博文:

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

    • 相关阅读:
      更健康舒适更科技的照明体验!SUKER书客护眼台灯 L1上手体验
      【73_3】数据结构c语言版
      【LeetCode】Day128-合并K个升序链表
      什么是FutureTask ?
      Linux基础内容(13)—— 进程控制
      牛客网之SQL100题(5)
      C++前缀和算法应用:和至少为 K 的最短子数组的原理、源码及测试用例
      大学毕业去什么样的公司工作不后悔?
      实例解读丨关于GaussDB ETCD服务异常
      Google XTS测试简述
    • 原文地址:https://blog.csdn.net/m0_57158496/article/details/128125260
    • 最新文章
    • 攻防演习之三天拿下官网站群
      数据安全治理学习——前期安全规划和安全管理体系建设
      企业安全 | 企业内一次钓鱼演练准备过程
      内网渗透测试 | Kerberos协议及其部分攻击手法
      0day的产生 | 不懂代码的"代码审计"
      安装scrcpy-client模块av模块异常,环境问题解决方案
      leetcode hot100【LeetCode 279. 完全平方数】java实现
      OpenWrt下安装Mosquitto
      AnatoMask论文汇总
      【AI日记】24.11.01 LangChain、openai api和github copilot
    • 热门文章
    • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
      奉劝各位学弟学妹们,该打造你的技术影响力了!
      五年了,我在 CSDN 的两个一百万。
      Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
      面试官都震惊,你这网络基础可以啊!
      你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
      心情不好的时候,用 Python 画棵樱花树送给自己吧
      通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
      13 万字 C 语言从入门到精通保姆级教程2021 年版
      10行代码集2000张美女图,Python爬虫120例,再上征途
    Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
    正则表达式工具 cron表达式工具 密码生成工具

    京公网安备 11010502049817号