一、列表推导式
语法:[表达式 for循环 if判断]
list = [i for i in range(1,11)] print(list)
结果:
list = [i +1 for i in range(10)] print(list)
结果:
示例:生成1-10之间的偶数列表
list = [i for i in range(11) if i%2==0] print(list)
结果:
示例:生成一个含有10个元素的列表,10个元素都是666
list = [666 for i in range(10)] print(list)
结果:
如果for循环中的i不使用,用下划线代替,下划线表示没有用的参数
list = [666 for _ in range(10)] print(list)
示例:过滤掉名字长度小于5的
list1 = ["zhangsan","lisi","wangwu"] list2 = [name for name in list1 if len(name) > 5] print(list2)
注意:for循环中不一定要用到range。
2个for循环
list = [(x,y) for x in range(1,3) for y in range(3)] print(list)
结果:
二、字典推导式
格式:{key : value for循环 if判断}
dict = { str(i) : i**2 for i in range(1,11)} print(dict)
结果:
示例:将key和value互换位置
dict = {"name": "zhangsan","age": 18} dict1 = {dict[key]: key for key in dict} print(dict1)
结果:
三、无序集合推导式
无序集合可以去重
语法:{表达式 for循环 if判断}
list = ["beijing","shanghai","beijing"] list1 = {city for city in list if city.startswith("b")} print(list1)
结果: