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

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


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

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


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


等风来,不如追风去……


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


本文质量分:

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

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



◆ 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博:

    • 0
      点赞
    • 3
      收藏
      觉得还不错? 一键收藏
    • 打赏
      打赏
    • 2
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论 2
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包

    打赏作者

    梦幻精灵_cq

    你的鼓励将是我创作的最大动力

    ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
    扫码支付:¥1
    获取中
    扫码支付

    您的余额不足,请更换扫码支付或充值

    打赏作者

    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值