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]

你可能感兴趣的:(python,python)