python 列表推导

转摘,内容来源于  《Head First Python》书籍


列表推导(list comprehension) ,一般列表转换,都是用for 命令迭代列表中的每一个数据,而  列表推导可以简化从一个列表转换为另一个列表的代码,

例子,现在有两个文件 james.txt ,julie.txt ,打印结果并排序
james.txt 内容  2.01,2-22,2.34,2:38,3.01,3-10,3:20
julie.txt 内容 2.22,2:11,2.23,2.59,3-21,3:22,2-13

python 代码:

###定义函数sanitize,用来转换数据中的-与:
def sanitize(time_string):
	if '_' in time_string:
		splitter='_'
	elif ':' in time_string:
		splitter=':'
	(mines,secs)=time_string.split(splitter)
	return(mins + '.' + secs)

###打开文件,读入数据
with open('james.txt') as jaf: data=jaf.readline()
james=data.strip().split(',')
with open('julie.txt') as juf: data=juf.readline()
julie=data.strip().split(',')

###定义新列表,用来存储转换后的数据
clean_james=[]
clean_julie=[]
###开始转换
for each_t in james:
	clean_james.append(sanitize(each_t))
for each_t in julie:
	clean_julie.append(sanitize(each_t))

###将新的列表数据,排序打印
print(sorted(clean_james))
print(sorted(clean_julie))


上面代码中定义列表存储转换数据部分,可以使用列表推导完成,来简化代码
clean_james=[]
for each_t in james:
clean_james.append(sanitize(each_t))
等价于   clean_james=[sanitize(each_t) for each_t in james]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值