列表生成式
现在有个需求,现有列表a=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求你把列表里的每个值加1,你怎么实现?你可能会想到2种方式 二逼青年版 生成一个新列表b,遍历列表a,把每个值加1后存在b里,最后再把a=b, 这样二逼的原因不言而喻,生成了新列表,浪费了内存空间。 >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> b = [] >>> for i in a:b.append(i+1) ... >>> b [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> a = b >>> a [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 普通青年版 毫无新意 a = [1,3,4,6,7,7,8,9,11] for index,i in enumerate(a): a[index] +=1 print(a) 略屌青年版 >>> a [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> a = map(lambda x:x+1, a) >>> a >>> for i in a:print(i) ... 3 5 7 9 11 装逼青年版 >>> a = [i+1 for i in range(10)] >>> a [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 这样的写法就叫做列表生成式,有什么用呢?装逼用,哈哈,写出来显的高级,效果跟上面的都一样哈。
看下面的就可以了,列表装逼高配版
#下面是自己写的,主要看下面这个就可以 arr = ["%s sex is 男"%i if (i%2) == 0 else "%s sex is 女"%i for i in range(10)] for i in arr: print(i) """ 0 sex is 男 1 sex is 女 2 sex is 男 3 sex is 女 4 sex is 男 5 sex is 女 6 sex is 男 7 sex is 女 8 sex is 男 9 sex is 女 """
-----------------------------------------------------------------------------------------------------------------------------------------