列表推导:从其他列表创建列表 >>> [x * x for x in range(10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] 下面实现只打印能被3整除的平方值(仅当x能被3整除时,x*x才能被3整除) >>> [x*x for x in range(10) if x 3 == 0] % [0, 9, 36, 81] 还可添加更多for: >>> [(x, y) for x in range(3) for y in range(3)] [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)] 作为对比,下面两个for循环创建同样的列表 result = [] for x in range(3):     for y in range(3)         result.append((x, y)) 将首字母相同的配对: >>> girls = ['alice', 'bernice', 'clarice'] >>> boys = ['chris', 'arnold', 'bob'] >>> [b+'+'+g for b in boys for g in girls if b[0] == g[0]] ['chris+clarice', 'arnold+alice', 'bob+bernice'] 使用圆括号代替方括号并不能实现元组推导,而是将创建生成器,然而,可使用花括号来执行字典推导。 >>> squares = {i:"{} squared is {}".format(i, i**2) for i in range(10)} >>> squares[8] '8 squared is 64' 在列表推导中, for前面只有一个表达式,而在字典推导中, for前面有两个用冒号分隔的表 达式。这两个表达式分别为键及其对应的值。
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄