Java转python第六天

一、列表推导式

  1、循环模式

    简单循环

l1 = [i for i in range(2,10,2)]
print(l1)
#结果:[2, 4, 6, 8]

    带有表达式的循环

#打印1-10的平方
l1 = [i*i for i in range(1,11)]
print(l1)
#结果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

#打印小米2到小米9
mi_list=['小米{}'.format(i) for i in range(2,10)]
print(mi_list)
#结果:['小米2', '小米3', '小米4', '小米5', '小米6', '小米7', '小米8', '小米9']

  2、筛选模式

    单层筛选

#筛选大于10的数
numbers = [45,7,63,2,25,84,8,87,54,8,76,2,45,19]
print([number for number in numbers if number >10])
#结果:[45, 63, 25, 84, 87, 54, 76, 45, 19]

    迭代列表中的列表,这个地方列表中的元素必须都是可迭代的

#筛选大于10的数
numbers = [[45,7,63,2],[25,84,8,87,54],[8,76,2,45,19]]
print([number for list in numbers for number in list if number >10])
#结果:[45, 63, 25, 84, 87, 54, 76, 45, 19]

二、生成器表达式

  生成器表达式和列表推导式的区别:

    1、生成器表达式使用(),列表推导式使用[]

    2、生成器表达式返回一个生成器,列表推导式返回一个列表

  一个简单的生成器表达式例子:

l1 = (i for i in range(2,10,2))
print(l1)             
#结果:<generator object <genexpr> at 0x00000206C615A408>
print(l1.__next__())    
#结果:2

 三、字典推导式、集合推导式

  字典推导式

a = {i:"第{}个".format(i) for i in range(1,6)}
print(a)
#结果:{1: '第1个', 2: '第2个', 3: '第3个', 4: '第4个', 5: '第5个'}

  集合推导式

  集合推导式多了个去重的功能

b = {i*i for i in [1,-1,2,-2]}
print(b)
#结果:{1, 4}

学习链接:

https://www.cnblogs.com/jin-xin/articles/10858058.html

猜你喜欢

转载自www.cnblogs.com/wgsn/p/10862593.html