推导式是从一个或者多个迭代器快速创建序列的一种方法。它可以将循环和条件判断结合,从而避免冗长的代码。推导式是典型的Python风格,会使用它,代表你已经超过Python初学者的水平。
1.列表推导式
列表推导式生成列表对象,语法如下:
[表达式 for item in 可迭代对象 ] 或者:{表达式 for item in 可迭代对象 if 条件判断}
eg:[x for x in range(1,5)] #结果[1, 2, 3, 4]
eg:[x*2 for x in range(1,5)] #结果[2, 4, 6, 8]
eg:[x*2 for x in range(1,20) if x%5==0 ] #结果[10, 20, 30]
eg:[a for a in "abcdefg"] #结果['a', 'b', 'c', 'd', 'e', 'f', 'g']
2.字典推导式
字典的推导式生成字典对象,格式如下:
{key_expression: value_expression for 表达式 in 可迭代对象}
values = ["北京","上海","深圳","广州"] cities = {id*100:city for id,city in zip(range(1,5),values)} print(cities) #{100: '北京', 200: '上海', 300: '深圳', 400: '广州'}
3.集合推导式
集合推导式生成集合,和列表推导式的语法格式类似:
{表达式 for item in 可迭代对象 } 或者:{表达式 for item in 可迭代对象 if 条件判断}
{x for x in range(1,100) if x%9==0} #{99, 36, 72, 9, 45, 81, 18, 54, 90, 27, 63}