
点击“蓝字”关注,一起进阶共同成长
列表推导式可以帮助你通过某个条件取出一个字典的子集;也可以把一个列表通过规则重组为一个字典,方便后续使用。
取出一个字典的子集
d = { 'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6, 'g': 7}case1 = {k: v for k, v in d.items() if v > 4}print(f'case1: {case1}')case1: {'e': 5, 'f': 6, 'g': 7}列表重组为一个字典
nodes = [ {'node_id': "e3rdf", 'number': '1001'}, {'node_id': "f5g44", 'number': '1002'}, {'node_id': "hbj7h", 'number': '1003'}, {'node_id': "jky7g", 'number': '1004'}]case2 = {item['node_id']: item for item in nodes}print(f'case2: {case2}')case2: {'e3rdf': {'node_id': 'e3rdf', 'number': '1001'}, 'f5g44': {'node_id': 'f5g44', 'number': '1002'}, 'hbj7h': {'node_id': 'hbj7h', 'number': '1003'}, 'jky7g': {'node_id': 'jky7g', 'number': '1004'}}使用dict()也可以实现同样的效果
case3 = dict((item['node_id'], item) for item in nodes)print(f'case3: {case3}')case3: {'e3rdf': {'node_id': 'e3rdf', 'number': '1001'}, 'f5g44': {'node_id: 'f5g44', 'number': '1002'}, 'hbj7h': {'node_id': 'hbj7h', 'number': '1003'}, 'jky7g': {'node_id': 'jky7g', 'number': '1004'}}详细说一下dict()
# dict用法有一下三种# class dict(**kwarg)# class dict(mapping, **kwarg)# class dict(iterable, **kwarg)# 下面举例说明case1 = dict(a='one', b='two', c='three')print(f'case1: {case1}')case2 = dict([('a', 'one'), ('b', 'two'), ('c', 'three')])print(f'case2: {case2}')# [('a', 'one'), ('b', 'two'), ('c', 'three')]可以使用另一种input的形式zip(['a', 'b', 'c'], ['one', 'two', 'three'])case3 = dict(zip(['a', 'b', 'c'], ['one', 'two', 'three']))print(f'case3: {case3}')case1: {'a': 'one', 'b': 'two', 'c': 'three'}case2: {'a': 'one', 'b': 'two', 'c': 'three'}case3: {'a': 'one', 'b': 'two', 'c': 'three'}
欢迎留言和我分享,我会第一时间给你反馈

长按关注
一起进阶
Do Hard

版权声明:本文为weixin_42570484原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。