Python中的列表推导式

使用列表推导式可以快速生成一个列表,或者根据某个列表生成满足指定需求的列表。列表推导式通常有以下几种常用的语法格式:

1)生成指定范围的数值列表,语法格式如下:

    list=[Expression for var in range]

   list:表示生成的列表名称

  Expression:表达式,用于计算新列表的元素

  var:循环变量

  range:采用range()函数生成range对象

比如:

import random
list=[random.randint(10,100) for i in range(10)]
print("生成的随机数列表为:",list)

2)根据列表生成指定需求的列表,语法格式如下:

   newlist=[Expression for var in list]

  newlist:表示新生成的列表名称

  Expression:表达式,用于计算新列表的元素

  var:变量,值为后面列表的每个元素值

  list:用于生成新列表的原列表

例如:定义一个记录商品价格的列表,然后应用列表推导式生成一个将全部商品价格打五折的列表

list=[12.8,53.6,23.15,45.69]
newlist=[i*0.5 for i in list]
print('原价为:',list)
print('打五折后价格为:',newlist)

3)从列表中选择符合条件的元素组成新的列表,语法格式如下:

   newlist=[Expression for var in list if condition]

   newlist:表示新生成的列表名称

   Expression:表达式,用于计算新列表的元素

   var:变量,值为后面列表的每个元素值

   list:用于生成新列表的原列表

   condition:条件表达式,用于指定筛选条件

例如:定义一个记录商品价格的列表,然后应用列表推导式生成一个商品价格高于5000的列表

list=[1289,5896,6578,12345,8796,456]
newlist=[x for x in list if x>5000]
print('原列表为:',list)
print('大于五千的列表为:',newlist)

然后我们可以看一下下面的几个程序代码,看大家是否能看懂:

#一行代码输出数字1-10
print(' '.join([str(i) for i in range(1,11)]))
#一行代码输出数字1-100的和
print(sum([i for i in range(1,101)]))
#一行代码输出所有大写字母
print([chr(i) for i in range(65,91)])
#一行代码输出所有小写字母
print([chr(i) for i in range(97,123)])

相信大家很多人都看不懂第一种是怎么实现的吧,当然今天我也主要是说明第一种的实现

str.join(iterable)

返回一个新字符串,由组合数据类型iterable变量的每个元素组成,元素间用str分割

str='ni hao‘str.join('123') '1ni hao2ni hao3‘

str='-‘  str.join(('a','b','c')) 'a-b-c'

fruit=['apple','peach','banana','pear'] 

 sep=','  sep.join(fruit)    'apple,peach,banana,pear'

':'.join(fruit)    'apple:peach:banana:pear'

''.join(fruit)   'applepeachbananapear'

str.split(sep=None, maxsplit=-1)

返回一个列表,由str根据sep被分割的部分构成,默认分隔符为空白字符(包括空格、换行符、制表符等)maxsplit参数为最大分割次数

 'h-e-l-l-o'.split(sep='-')  ['h', 'e', 'l', 'l', 'o'] 

'h-e-l-l-o'.split('-',2)   ['h', 'e', 'l-l-o']

'hello hello he j h'.split('e')  ['h', 'llo h', 'llo h', ' j h']

txt = "Google#Runoob#Taobao#Facebook“

 txt.split("#", 1)        ['Google', 'Runoob#Taobao#Facebook']

str='he\tl\tl\to'   str.split()    ['he', 'l', 'l', 'o']

str='wor\nld'    str.split()   ['wor', 'ld']

 上面就是具体的实现和答案,我就不在过多的打这代码了,相信大家应该都能看懂。

下面给出一个例题:(看大家能否实现此题)

某市计划举行一场“畅想明天”歌咏比赛,需要编写一个歌手打分程序,输入7名评委的打分(0-10),去掉一个最低分,去掉一个最高分,输出该选手的得分(平均分)

print('畅想明天歌咏比赛打分程序'.center(30))
print('='*40)
score=[]
date=input('请输入7名裁判的打分,用英文逗号间隔分数:')
score=date.split(',')
print(score)
print('去掉一个最低分:',str(min(score)))
print('去掉一个最高分:',str(max(score)))
score.remove(min(score))
score.remove(max(score))
digit=[float(i) for i in score]
avg=sum(digit)/len(digit)
print('选手得分为:{}'.format(avg))

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

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

相关文章

【贪心】LeetCode-406. 根据身高重建队列

406. 根据身高重建队列。 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。 请你重新…

关于“Python”的核心知识点整理大全22

目录 ​编辑 9.4.2 在一个模块中存储多个类 虽然同一个模块中的类之间应存在某种相关性,但可根据需要在一个模块中存储任意数量的 类。类Battery和ElectricCar都可帮助模拟汽车,因此下面将它们都加入模块car.py中: car.py my_electric_car…

焦虑,其实是你自愿选择的

如果一个人想要焦虑,他可以永远焦虑下去 从上学,到找工作,从买房到结婚生娃,他总是可以选择用自己的头脑去过度思考未来还没有发生的事情,从而让自己无限焦虑下去,直到生命终结。 我们的生命是存在于当下…

技术点:实现大文件上传

大文件上传 实现思路 对于大文件上传考虑到上传时间太久、超出浏览器响应时间、提高上传效率、优化上传用户体验等问题进行了深入探讨,以下初略罗列各个知识点的实现思路: 大文件上传对文件本身进行了文件流内容 Blob 的分割,使用 Blob.pr…

基于 Gin 的 HTTP 代理上网行为记录 demo

前言: 前端时间写了好几篇使用 Gin 框架来做 HTTP 代理 demo 的文章,然后就想着做一个记录上网行为的小工具,就是简单记录看看平时访问了什么网站(基于隧道代理的,不是中间人代理,所以只能记录去了哪里,不能…

wps左上角有绿色小三角的数字如何求和

1.这个状态是求和不了的,使用求和公式求出来的也是0 2.进行如下操作 3.转换好后 则可以求和成功了

使用JavaScript转换图片格式

我们可以在现代浏览器中直接转换图片和格式&#xff0c;不需要上传服务器或者使用服务器脚本。 HTML <!-- 文件上传控件 --> <input type"file" id"fileInput" accept"image/*" /><!-- 输出格式选择 --> <select id"…

sns 查看pandas 数据对比

一 对比其中两列数据的方式 import seaborn as snssns.kdeplot(data[charge], shade True, hue data[sex]) sns.kdeplot 是 Seaborn 库中用于绘制核密度估计图&#xff08;Kernel Density Estimate&#xff0c;简称 KDE 图&#xff09;的函数。核密度估计是一种非参数统计方…

redis基本用法学习(主要数据类型)

redis官网教程中介绍有三种方式连接redis&#xff1a;命令行、gui工具和编程连接&#xff1a;   命令行方式主要是在命令行中输入redis-cli后&#xff0c;通过命令方式与redis服务进行交互&#xff0c;支持两种模式&#xff1a;REPL模式&#xff08;简单的交互式的编程环境&a…

深度学习 Day16——P5运动鞋识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 文章目录 前言1 我的环境2 代码实现与执行结果2.1 前期准备2.1.1 引入库2.1.2 设置GPU&#xff08;如果设备上支持GPU就使用GPU,否则使用C…

【C++配置yaml】yaml-cpp使用

yaml-cpp 》》参考资料1 》》参考资料2 文章目录 yaml-cpp下载安装yaml-cpp使用Nodenode的增改查删Node 相关APIyaml文件解析 下载安装 安装yaml-cpp git clone https://github.com/jbeder/yaml-cpp.git cd yaml-cpp mkdir build && cd build cmake .. && m…

【Qt QML 入门】TextArea

TextArea也是一个多行文本编辑器。TextArea相比texttedit&#xff0c;增加了占位符文本&#xff0c;并添加了样式定义。 import QtQuick import QtQuick.Window import QtQuick.ControlsWindow {id: winwidth: 800height: 600visible: trueTextArea {id: taanchors.centerIn: …

解决Visual Studio 各版本都出现新建项目后解决方案下没有文件和项目问题

一步一步创建C#控制台应用程序也会出错&#xff0c;这个你可能不会相信&#xff0c;我就遇到了这么一次&#xff0c;就在刚刚&#xff0c;是的&#xff0c;我都不敢相信&#xff0c;用了这么多年的新建一个控制台程序居然不正常了。新建完毕发现里面什么都没有&#xff0c;除了…

飞天使-docker知识点10-docker总结

文章目录 docker 知识点汇总docker chatgpt解释学习路线 docker 知识点汇总 docker 基础用法 docker 镜像基础用法 docker 容器网络 docker 存储卷 dockerfile docker仓库 harbor docker-compose docker chatgpt解释学习路线 学习Docker可以帮助你了解容器化技术&#xff0c…

首发卡密引流系统源码

程序特色&#xff1a; 支持个人和企业小程序广告获取卡密。 支持短视频点赞和关注获取卡密。 搭建教程&#xff1a; 环境要求&#xff1a;Nginx、MySQL 5.6、PHP 5.6 步骤&#xff1a; 将压缩包解压至网站根目录。 打开域名/install&#xff0c;按照提示填写数据库信息进行…

JS对象循环引用的危害:你知道吗?

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

移动端机器学习框架 MDL 简介与实践

Mobile-deep-learning&#xff08;MDL&#xff09; MDL 是百度研发的可以部署在移动端的基于卷积神经网络实现的移动端框架&#xff0c;可以应用在图像识别领域。 具体应用&#xff1a;在手机百度 App 中&#xff0c;用户只需要点击自动拍开关&#xff0c;将手机对准物体&…

联想王传东:AI PC迈入AI Ready 即将开启AI On

“AI PC已经正式迈入AI Ready 阶段&#xff0c;接下来会逐渐进入到AI On阶段。”12月16日&#xff0c;英特尔人工智能创新应用大赛启动仪式在深圳举办。作为独家AI PC合作伙伴&#xff0c;联想集团副总裁、中国区首席市场官王传东代表公司出席仪式并致辞。 王传东认为AI PC的发…

MySQL查询,条件查询、模糊查询、限制查询...

## 检索限制 SELECT DISTINCT event_id FROM sign_guest; # distinct作用于它后面写的所有列 SELECT * FROM sign_guest LIMIT 5; # 返回数据不多余5条 SELECT * FROM sign_guest LIMIT 2,4; # 第一个数是开始的位置&#xff0c;第二个数是要返回的数据条数#### 排序检索## o…

《哥德尔证明》阅读笔记——一致性问题

前言 从第一次了解到哥德尔不确定性原理时&#xff0c;我就被此定理的内涵和意义所吸引&#xff0c;也对这个定理的证明过程充满兴趣&#xff0c;最近闲暇时&#xff0c;买了这本《哥德尔证明》的书&#xff0c;希望理解这个意义重大的数学定理的核心&#xff0c;在此做一个阅…