Python list的双循环列表推导

       最近看了一句代码,list列表里有一个双循环,刚开始看的有点绕,后来才看明白,觉得有点意思,学些一下。就是如下面代码中的给y的赋值,常见的列表推导是:

x = [i for i in range(10)]

       但加了两个循环,第一次没看懂,仔细思考了一下才明白。
代码如下:

x = [["a","b","c"],["b","e"],["a","d"]]
y = list(set([i for j in x for i in j]))
print([i for j in x for i in j])
print(y)

       先看下[i for j in x for i in j] 结果是:

['a', 'b', 'c', 'b', 'e', 'a', 'd']

       后面的y 就是对列表中的元素进行去重操作,其实,就是一个嵌套循环,只不过用列表推导的方式实现。

可以分两步看:
第一步:for j in x,将 x中的每个list取出来
第二步:for i in j, 将前步取出来的每个list再遍历,将每个元素取出来

你可能感兴趣的:(Data,Analysis)