1) 列表推导式
# 简单的列表推导式
[x**2 for x in [1, 1, 2]]
Out[9]: [1, 1, 4]
# 在列表推导式中使用if过滤
[x**x for x in range(30) if x % 3 is 0]
Out[8]:
[1,
27,
46656,
387420489,
8916100448256,
437893890380859375,
39346408075296537575424,
5842587018385982521381124421,
1333735776850284124449081472843776,
443426488243037769948249630619149892803]
2) 集合推导式
# 简单的集合推导式用法和列表推导式一样的用法不过是集合的特质
{x**2 for x in [1, 1, 2]}
Out[5]: {1, 4}
3) 字典推导式
# 这是从mongodb数据库中查出来的数据(在交互式的python环境不行)
item = { "_id" : ObjectId("5bf4bc6cd09f970871a28f26"), "username" : "ala03", "pass" : "4b2f7535e6674d19aa936a5e7ef4e132", "auth_name" : 4, "created_at" : ISODate("2018-11-21T02:01:16.080Z"), "qr_code" : "xxxxx.png" }
# 简单的字典对推导式
{x: str(y) for x, y in item.items()}
结果 {'_id': '5bf4bc6cd09f970871a28f26', 'username': '"ala03', 'pass': '4b2f7535e6674d19aa936a5e7ef4e132', 'auth_name': '4', 'created_at': '2018-11-21 02:01:16.744000', 'qr_code': 'xxxxx.png'}
# 利用三元表达式判断字典的value不是int类型的value转为字符串
{k: str(item[k]) if type(item[k]) is not int else item[k] for k in item.keys()}
结果 {'_id': '5bf4bc6cd09f970871a28f26', 'username': '"ala03', 'pass': '4b2f7535e6674d19aa936a5e7ef4e132', 'auth_name': 4, 'created_at': '2018-11-21 02:01:16.744000', 'qr_code': 'xxxxx.png'}
网友评论