列表解析
根据已有列表,高效创建新列表的方式。
列表解析是Python迭代机制的一种应用,它常用于实现创建新的列表,因此用在[]中。
语法:
[expression for iter_val in iterable]
[expression for iter_val in iterable if cond_expr]
列表解析
场景1: 对于一个列表,既要遍历索引又要遍历元素
要求:列出1~10所有数字的平方
####################################################
1、普通方法:
>>> L = []
>>> for i in range(1,11):
... L.append(i**2)
...
>>> print L
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
2、列表解析
>>>L = [ i**2 for i in range(1,11)]
>>>print L
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
场景2: 对于一个列表,既要遍历索引又要遍历元素。
1.这里可以使用Python内建函数enumerate,在循环中更好的获取获得索引。
array = ['I', 'love', 'Python']
for i, element in enumerate(array):
array[i] = '%d: %s' % (i, seq[i])
2.可以使用列表推导式对其进行重构:
def getitem(index, element):
return '%d: %s' % (index, element)
array = ['I', 'love', 'Python']
arrayIndex = [getitem(index, element) for index, element in enumerate(array)]