微信网站建设模板下载,在五八同城做网站多少钱,莲花直播,网站做广告如何做帐使用列表推导式可以快速生成一个列表#xff0c;或者根据某个列表生成满足指定需求的列表。列表推导式通常有以下几种常用的语法格式#xff1a;
#xff08;1#xff09;生成指定范围的数值列表#xff0c;语法格式如下#xff1a; list[Expression for var in range] …使用列表推导式可以快速生成一个列表或者根据某个列表生成满足指定需求的列表。列表推导式通常有以下几种常用的语法格式
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 x5000]
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分割 strni 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(sepNone, 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] strhe\tl\tl\to str.split() [he, l, l, o] strwor\nld str.split() [wor, ld] 上面就是具体的实现和答案我就不在过多的打这代码了相信大家应该都能看懂。
下面给出一个例题看大家能否实现此题
某市计划举行一场“畅想明天”歌咏比赛需要编写一个歌手打分程序输入7名评委的打分(0-10分)去掉一个最低分去掉一个最高分输出该选手的得分(平均分)
print(畅想明天歌咏比赛打分程序.center(30))
print(*40)
score[]
dateinput(请输入7名裁判的打分用英文逗号间隔分数:)
scoredate.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]
avgsum(digit)/len(digit)
print(选手得分为:{}.format(avg))