小列表通常可以使用列表字面值直接创建,但是长一些的列表通常需要使用程序来创建。对已一系列或连续的整数我们可以使用
list(range(n)) 创建,或者如果只需要一个整数数字迭代,使用range()就足以满足,但是对一些更复杂的列表使用 for 。。。in循环创建是一种更常见的做法,比如,
假定需要生成给定时间范围内的闰年列表,可以使用如下语句:
leaps=[]
for year in range(1900,1940):
if(year%4==0 and year%100!=0)or (year%400==0)
leaps.append(year)
列表内涵是一个表达式,也是一个循环,该循环有一个可选的,包含在方括号中的条件,作用是为列表生产数据选项,并且可以使用条件过滤掉不需要的数据项。
列表内涵最简单的形式如下:
[item for item in iterable]
可以使用表达式
[expression for item in iterable]
[expression for item in iterable if condition]
第二种 相当于
temp=[]
for item in iterable:
if condition:
temp.append(item)
那么上面生产闰年的列子可以使用 leaps=[y for y in range(1900,1940) if(y%4==0 and y%400!=0) or(y%400=0)]