美文网首页
python推导式(列表,字典,集合)

python推导式(列表,字典,集合)

作者: Odven | 来源:发表于2020-05-22 15:32 被阅读0次

    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'}

    相关文章

      网友评论

          本文标题:python推导式(列表,字典,集合)

          本文链接:https://www.haomeiwen.com/subject/jfbqahtx.html