列表解析式是将一个列表(实际上适用于任何 可迭代对象(iterable) )转换成另一个列表的工具。在转换过程中,可以指定元素必须符合一定的条件,才能添加至新的列表中,这样每个元素都可以按需要进行转换。
a0=dict(zip((‘a‘,‘b‘,‘c‘),(1,2,3))) a1=range(10) a2=[i for i in a1 if i in a0] print(a2)
以上代码打印的是一个空列表
我们来解释一下代码列表解析式运用的逻辑:
a0=dict(zip((‘a‘,‘b‘,‘c‘),(1,2,3))) a1=range(10) a2=[] for i in a1: if i in a0: a2.append(i) print(a2)
前面两个代码等价,这时你就可以理解了列表解析式的基本运用了
这时还有一个问题,为什么打印的值为空呢?这是因为 if i in a0这个语句判断的是i是否在字典中,判断的是字典的key值而不是value值,所以不等价返回的是False
原文:https://www.cnblogs.com/luocodes/p/10727019.html