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


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

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

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

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


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


  • My CSDN主页、My HOT博、My Python 学习个人备忘录
  • 好文力荐、 老齐教室


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


本文质量分:

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

CSDN质量分查询入口:http://www.csdn/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
>>>

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."
>>>

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


回页目录

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

>>> 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)

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
>>>

5.2 矩阵求和

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

5.3 拼接字符串

>>> 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>>>

回页目录

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

__下一篇:__ 提取字符串单引号内的字符——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规范(说明文档的规范写法)

    更多推荐

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