推导式

列表推导式:

生成列表只要一行代码.以表达式的方式来快捷的生成一个列表数据的一种表达式(效率提高了,但是可读性变差了)
格式:[计算公式 for X in 可迭代对象 if 条件判断]         计算公式:一个取值规则而已

执行顺序:先执行   for X in 可迭代对象 部分,然后执行 if 条件判断 , 接着执行 计算公式取值部分,最后把取到的值丢到列表中,所以其返回值类型一定是个列表.

应用场景:对列表中的数据进行过滤(留下想要的数据,剔除不要的)

list1 = [(i+1) for i in range(1,101)]
print(list1)
# 执行顺序是: 1.for --> 2.if --> 3.i**2
list1 = [i ** 2 for i in range(1, 11) if i % 2 == 0]
print(list1)
"""生成列表:  就是返回的列表中有10个'666'字符串 """
# 推导式不一定使用i,不一定使用range.灵活的很啊
list1 =['666' for i in range(10)]
print(list1)

list1 = ['zhangsan', 'lisi', 'wangwu']
list2 = [name for name in list1 if len(name) > 5]
print(list2)

# 递归就是死循环

 

字典推导式:

格式:{key:value for 循环 if 条件判断}

dict1 = {'name': 'zhangsan', 'age': 18}  # key-value互换位置

dict2 = {dict1[key]:key for key in dict1}
dict2 = {value: key for key, value in dict1.items()}
print(dict2)

 

无序集合推导式:

格式:{计算公式 for 循环 if 条件判断}

list1 = ["1","2","3","3"]

set1 = {int(s) for s in list1 if int(s) >=2}  # {2,3}
posted @ 2019-12-25 15:37  砚台是黑的  阅读(98)  评论(0编辑  收藏  举报