列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。
例一:
生成0 - 9的列表:
>>> a = []
>>> a = [i for i in range(10)]
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
例二:
s1 = 'abcde'
s2 = '12345'
生成 a1 a2 a3 a4 a5 b1....
>>> a =[]
>>> a = [x + y for x in s1 for y in s2]
>>> a
['a1', 'a2', 'a3', 'a4', 'a5', 'b1', 'b2', 'b3', 'b4', 'b5', 'c1', 'c2', 'c3', 'c4', 'c5', 'd1', 'd2', 'd3', 'd4', 'd5', 'e1', 'e2', 'e3', 'e4', 'e5']
例三:
temp = ['good','Love','doG',311,3432]
# 生成一个列表 字母全部小写,去掉数字
a = []
a = [i.lower()for i in temp if isinstance(i,str)]
print(a)
a = ['good','love','dog']
例四:
获得 1 - 9的奇数平方数:
a = []
a = [x * x for x in range(1,10) if x % 2 ]
print(a)
a = [1,9 25,49, 81]
例五:
s1 = '12345'
生成一个 1a 2b 3c....形式的列表:
>>> a = []
>>> a = ['%d%s'%(i + 1,chr(ord('a')+ i))for i in range(5)]
>>> a
['1a', '2b', '3c', '4d', '5e']
例五:
给定一个字典 生成键和值的列表:
>>> d = {'x': 'A', 'y': 'B', 'z': 'C' }
>>> [k + '=' + v for k, v in d.items()]
['y=B', 'x=A', 'z=C']
例六
l = [111,222,333,444]
生成指定格式的字符串:'1-111', '2-222', '3-333', '4-444'
>>> l = [111,222,333,444]
>>> a = []
>>> a = ['%d-%d'%(x + 1,y)for x, y in enumerate(l)]
>>> a
['1-111', '2-222', '3-333', '4-444']