栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【已解决】python列表生成式如何拆开写(含样例参考)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【已解决】python列表生成式如何拆开写(含样例参考)

本博文源于python常见问题基础,很多时候,我写代码时看见问题,突然就会条件反射用到某个方法。而别人却无法常常瞬间想到。今天遇到了一个问题,要拆开写列表生成式,可是我第一瞬间想到列表生成式啊。所以特此写博文说明一下,也同时对这方面困惑的人进行答疑一下。

1、问题重现

输入:nums = [-4,-1,0,3,10]
输出: [0,1,9,16,100]
解释:平方后,数组变后[16,1,0,9,100],排序后,数组变为[0,1,9,16,100]

2、问题实验代码效果

3、问题主要思想

想直接作用在nums上,最简单的就是用列表生成式。但是先看问题的解释,发现它先取绝对值,然后再排序。所以我们要先用绝对值函数abs再用,sort函数或者sorted()。那可能看官会问sort和sorted()的区别。

因此sort和sorted就是是否直接作用在本身上。问题直接迎刃而解。

3. 问题两种代码 3.1 列表生成式版本
nums = [-4,-1,0,3,10]
nums = sorted([pow(abs(num),2) for num in nums])
print(nums)

3.2 列表生成式的拆开版本
nums = [-4,-1,0,3,10]
for i in range(len(nums)):
    nums[i] = pow(abs(nums[i]),2)
nums.sort()
print(nums)

4、 怎么拆开的呢?

确定输入、处理、输出这三种关系。
我们输入的是什么,nums整个列表里的数据。
我们处理用到哪些函数?一个abs()和sort()函数.
我们最后输出,作用在nums里。所以,重点关注这几句话

for i in range(len(nums)):
    nums[i] = pow(abs(nums[i]),2)
nums.sort()
  1. range()函数是将len变成可迭代
  2. nums[i]是指原地接受处理,先abs后pow,abs是去绝对值,pow是平方
  3. nums.sort()是直接作用在原始序列
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/422679.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号